Method for object avoidance during autonomous navigation

ABSTRACT

A method for autonomous navigation of an autonomous vehicle includes: estimating a stopping duration, for the autonomous vehicle to reach a full stop, based on a current speed of the autonomous vehicle; calculating a critical time from the current time by the stopping duration; detecting an object in a scan image, of a field proximal the autonomous vehicle, captured by a sensor on the autonomous vehicle at the current time; based on the scan image, deriving a current location and motion of the object; calculating a future state boundary that represents a ground area accessible to the object up to the critical time based on the current location and motion of the object and a set of predefined motion limit assumptions for generic objects proximal public roads; and electing a navigational action to avoid entry into the future state boundary prior to the critical time.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/182,173, filed on 22 Feb. 2021, which claims priority to U.S.Provisional Patent Application Nos. 62/980,131, filed on 21 Feb. 2020,62/980,132, filed on 21 Feb. 2020, and 63/064,316, filed on 11 Aug.2020, each of which is incorporated in its entirety by this reference.

This application is related to U.S. patent application Ser. No.17/182,165, filed on 22 Feb. 2021, which claims priority to U.S.Provisional Patent Application Nos. 62/980,131, filed on 21 Feb. 2020,62/980,132, filed on 21 Feb. 2020, and 63/064,316, filed on 11 Aug.2020, each of which is incorporated in its entirety by this reference.

TECHNICAL FIELD

This invention relates generally to the field of autonomous vehicles andmore specifically to a new and useful method for object avoidance duringautonomous navigation in the field of autonomous vehicles.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a flowchart representation of a method;

FIG. 2 is a flowchart representation of one variation of the method;

FIGS. 3A, 3B, an 3C are flowcharts representations of one variation ofthe method;

FIG. 4 is a flowchart representation of one variation of the method;

FIG. 5 is a flowchart representation of one variation of the method;

FIG. 6 is a flowchart representation of one variation of the method; and

FIG. 7 is a flowchart representation of one variation of the method.

DESCRIPTION OF THE EMBODIMENTS

The following description of embodiments of the invention is notintended to limit the invention to these embodiments but rather toenable a person skilled in the art to make and use this invention.Variations, configurations, implementations, example implementations,and examples described herein are optional and are not exclusive to thevariations, configurations, implementations, example implementations,and examples they describe. The invention described herein can includeany and all permutations of these variations, configurations,implementations, example implementations, and examples.

1. Method

As shown in FIG. 1 , a method S100 for object avoidance duringautonomous navigation includes: at a first time at an autonomousvehicle, estimating a stopping duration, for the autonomous vehicle toreach a full stop, based on a speed of the autonomous vehicle at thefirst time in Block S110; storing a critical time offset from the firsttime by the stopping duration in Block S112; detecting an object in afirst scan image of the field around the autonomous vehicle captured atapproximately the first time in Block S120; and, based on the first scanimage, deriving a first location and a first radial speed of the objectalong a first ray from the autonomous vehicle to the object in BlockS122. The method S100 also includes calculating a first future stateboundary that represents a ground area accessible to the object from thefirst time to the critical time in Block S130 based on: the firstlocation of the object at the first time; the first radial speed of theobject; and a maximum assumed angular velocity, and a maximum assumedacceleration of a generic object defined for operation of the autonomousvehicle. The method S100 further includes, in response to a firstdistance between the autonomous vehicle at the first time and aperimeter of the future state boundary exceeding a threshold distance,muting the object from a next path planning consideration at theautonomous vehicle in Block S142; and, in response to the thresholddistance exceeding the first distance, calculating an access zone,around the autonomous vehicle, excluding the future state boundary ofthe object in Block S144 and executing a navigational action to remainin the access zone from the first time to the critical time in BlockS140.

One variation of the method S100 includes: at a first time at theautonomous vehicle, estimating a stopping duration, for the autonomousvehicle to reach a full stop, based on a speed of the autonomous vehicleat the first time in Block S110; calculating a critical time offset fromthe first time by the stopping duration in Block S112; detecting anobject in a first scan image, of a field proximal the autonomousvehicle, captured by a sensor on the autonomous vehicle at approximatelythe first time in Block S120; based on the first scan image, deriving afirst location and a first motion of the first object in Block S122;calculating a first future state boundary that represents a first groundarea accessible to the first object from the first time to the firstcritical time in Block S130 based on the first location of the firstobject at the first time, the first motion of the first object and a setof predefined motion limit assumptions for generic objects proximalpublic roads; and electing a first navigational action to avoid entryinto the first future state boundary prior to the first critical time inBlock S140.

Another variation of the method S100 includes: accessing a set ofpredefined motion limit assumptions for generic objects proximal publicroads in Block S102; accessing a scan image containing data captured bya sensor on the autonomous vehicle at a first time in Block S104;identifying a group of points in the scan image representing an objectin a field proximal the autonomous vehicle in Block S120, each point inthe group of points including a position of a surface on the objectrelative to the autonomous vehicle and a radial velocity of the surfaceof the object relative to the autonomous vehicle; calculating acorrelation between radial velocities and positions of points in thegroup of points in Block S122; based on the correlation, calculating afunction that relates possible tangential velocities of the object andpossible angular velocities of the object at the first time in BlockS122; calculating a radial velocity of the object at the first timebased on radial velocities of points in the group of points in BlockS122; calculating a future state boundary that represents a ground areaaccessible to the object at a future time in Block S130 based onpossible tangential velocities of the object and possible angularvelocities of the object—at the first time—defined by the function, theradial velocity of the object, and the set of predefined motion limitassumptions; and electing a navigational action to avoid the futurestate boundary prior to the future critical time in Block S140.

Yet another variation of the method S100 includes accessing a set ofpredefined motion limit assumptions for generic objects proximal publicroads in Block S102. The variation of the method S100 also includes, fora first scan cycle: accessing a first scan image containing datacaptured by a sensor on the autonomous vehicle at a first time in BlockS104; identifying a first group of points in the first scan imagerepresenting a first object in a field proximal the autonomous vehiclein Block S120, each point in the first group of points including a firstrange value from the sensor to a surface on the first object, a firstazimuthal position of the surface on the first object relative to thesensor and a first radial velocity of the surface of the first objectrelative to the sensor; calculating a first correlation between firstradial velocities and first azimuthal positions of points in the firstgroup of points in Block S122; based on the first correlation,calculating a first function that relates possible tangential velocitiesof the first object and possible angular velocities of the first objectat the first time in Block S122; and calculating a first radial velocityof the first object at the first time based on first radial velocitiesof points in the first group of points in Block S122. This variation ofthe method S100 further includes: estimating a first stopping duration,for the autonomous vehicle to reach a full stop, based on a first speedof the autonomous vehicle at the first time in Block S110; calculating afirst critical time offset from the first time by the stopping durationin Block S112; calculating a first future state boundary that representsa first ground area accessible to the first object at the first criticaltime in Block S130 based on possible tangential velocities of the firstobject and possible angular velocities of the first object—at the firsttime—defined by the first function, the first radial velocity, and theset of predefined motion limit assumptions; and electing a firstnavigational action to avoid entry into the first future state boundaryprior to the first critical time in Block S140.

2. Applications

Generally, the method S100 can be executed by an autonomous vehicle(e.g., an autonomous bus, an autonomous passenger vehicle) to: detect anobject in its environment; assign worst-case speed and accelerationvalues to the object based on preloaded maximum motion assumptions of ageneric object (or preloaded adversarial motion limits for a genericadversarial object); estimate a maximal ground area accessible to theobject from the current time up to a time that the autonomous vehiclemay brake to a full stop given its current speed; and to selectivelymute the object from path planning considerations if the autonomousvehicle is sufficiently far from this maximal ground area accessible orto consider this object and execute speed and/or steering angleadjustments to avoid entry into this maximal ground area accessible inthe future.

More specifically, throughout operation, the autonomous vehicle canmaintain an estimate of its stopping duration over which the autonomousvehicle can reach a full stop given its current speed. When theautonomous vehicle first detects an object in its field, the autonomousvehicle can: assign predefined, worst-case speed and accelerationassumptions of an adversarial agent to this object; and calculate amaximal ground area (hereinafter a “future state boundary”) that thisobject can access—under these worst-case speed and accelerationassumptions—over the autonomous vehicle's current stopping durationgiven the current location of the object. If the autonomous vehicle'scurrent location is sufficiently offset from or otherwise outside ofthis future state boundary of the object, the autonomous vehicle can:predict its ability to reach a full stop well before colliding with thisobject even under worst-case adversarial actions of the object; andtherefore ignore or mute the object from current path planning decisionsand instead wait until a later time when the autonomous vehicle nearsthe future state boundary of the object to execute navigational actionsto avoid the object. Conversely, if the autonomous vehicle's currentlocation is near this future state boundary of the object, theautonomous vehicle can reduce its speed (e.g., by a magnitude inverselyproportional to the distance from the autonomous vehicle to theperimeter of the future state boundary), thereby: reducing theautonomous vehicle's stopping duration; shrinking the future stateboundary of the object (which represents a maximal ground areaaccessible to the object over the autonomous vehicle's current stoppingduration); and enabling the autonomous vehicle to remain outside of thisfuture state boundary of the object over time. Therefore, the autonomousvehicle can execute Blocks of the method S100 to inform navigationalactions (e.g., speed and/or steering angle adjustments) predicted tomaintain a spatial and temporal distance from the object in order toenable the autonomous vehicle to reach a full stop prior to collisionwith the object, even if the object initiates or continues anadversarial action in the direction of the autonomous vehicleimmediately after the autonomous vehicle first detects the objects inits environment.

Furthermore, the autonomous vehicle can: detect and track this objectover subsequent scan images; derive a real velocity of the object fromthese scan images (e.g., an absolute velocity of the object based onchanges in position of the object over multiple consecutive scan imagesand successive radial speed measurements); and replace worst-caseassumptions for the speed of the object with real velocity of theobject. The autonomous vehicle can then repeat Blocks of the method S100to: recalculate a future state boundary of the object based on its realvelocity and worst-case acceleration assumptions for a generic object;and to selectively mute the object from current path planningconsiderations based on the autonomous vehicle's location relative tothis revised future state boundary.

For example, the autonomous vehicle can: store worst-case speeds andaccelerations of high-performance passenger vehicles or high-performancemotorcycles (e.g., a maximum speed of 50 meters per second, a maximumacceleration of 9 meters per second per second); and implement theseworst-case speeds and accelerations to calculate future state boundariesof all detected objects regardless of the actual types or classes ofthese objects. Thus, the autonomous vehicle can reduce or eliminatereliance on object identification and other machine learning techniquesto identify types of objects and to distinguish immutable objects (e.g.,road signs, telephone poles) from mutable objects (e.g., pedestrian,vehicles) in the field around the autonomous vehicle. More specifically,rather than predict a future state of an object based on a dynamicsmodel selected according to a predicted type of the object, theautonomous vehicle can instead: predict and bound future states of theobject based on limited motion data of the object, its current positionrelative to the autonomous vehicle, and maximum speed and accelerationassumptions for a generic object (e.g., a generic high-performancepassenger vehicle); and refine (e.g., narrow) these future stateboundaries of the object as the autonomous vehicle collects additionalvelocity data for this object over time.

Therefore, by executing Blocks of the method S100 to inform pathplanning decisions, the autonomous vehicle can: reduce or eliminate aneed to accurately identify types or classes of objects in itsenvironment; reduce or eliminate this possible source of error inautonomous operation of the autonomous vehicle; and increase robustnessof autonomous operation of the autonomous vehicle, such as againstadversarial computer vision attacks, adversarial neural network attacks,or in circumstances with limited or no prior training data.

Furthermore, the autonomous vehicle can implement identical detection,tracking, and motion planning decision pathways for both mutable andimmutable objects, thereby reducing or eliminating a need to identifyclasses of objects (or classifying objects as mutable or immutable) inthe autonomous vehicle's environment and reducing a quantity of uniquecomputer vision, machine learning, and path planning pipelines executingon the autonomous vehicle. For example, the autonomous vehicle canexecute identical detection, tracking, and motion planning decisionpathways to predict and handle: possible undetectable objects in theautonomous vehicle's environment but obscured by other detected objects(e.g., a pedestrian standing behind a telephone pole; a passengervehicle occupying a lane obstructed in the autonomous vehicle's field ofview by a tractor trailer); objects first entering the autonomousvehicle's field of view; and objects extant in the autonomous vehicle'sfield of view.

3. Autonomous Vehicle

The autonomous vehicle can include: a suite of sensors configured tocollect data representative of objects in the field around theautonomous vehicle; local memory that stores a navigation map defining aroute for execution by the autonomous vehicle, and a localization mapthat represents locations of immutable surfaces along a roadway; and acontroller. The controller can: calculate the location of the autonomousvehicle in real space based on sensor data collected from the suite ofsensors and the localization map; calculate future state boundaries ofobjects detected in these sensor data according to Blocks of the methodS100; elect future navigational actions based on these future stateboundaries, the real location of the autonomous vehicle, and thenavigation map; and control actuators within the vehicle (e.g.,accelerator, brake, and steering actuators) according to thesenavigation decisions.

In one implementation, the autonomous vehicle includes a set of 360°LIDAR sensors arranged on the autonomous vehicle, such as one LIDARsensor arranged at the front of the autonomous vehicle and a secondLIDAR sensor arranged at the rear of the autonomous vehicle, or acluster of LIDAR sensors arranged on the roof of the autonomous vehicle.Each LIDAR sensor can output one three-dimensional distance map (ordepth image)—such as in the form of a 3D point cloud representingdistances between the LIDAR sensor and external surface within the fieldof view of the LIDAR sensor—per rotation of the LIDAR sensor (i.e., onceper scan cycle). The autonomous vehicle can additionally oralternatively include: a set of infrared emitters configured to projectstructured light into a field near the autonomous vehicle; a set ofinfrared detectors (e.g., infrared cameras); and a processor configuredto transform images output by the infrared detector(s) into a depth mapof the field.

The autonomous vehicle can additionally or alternatively include a setof color cameras facing outwardly from the front, rear, and/or sides ofthe autonomous vehicle. For example, each camera in this set can outputa video feed of digital photographic images (or “frames”) at a rate of20 Hz. The autonomous vehicle can also include a set of RADAR sensorsfacing outwardly from the autonomous vehicle and configured to detectpresence and speeds of objects near the autonomous vehicle. Thecontroller in the autonomous vehicle can thus fuse data streams from theLIDAR sensor(s), the color camera(s), and the RADAR sensor(s), etc. intoone scan image—such as in the form of a 3D color map or 3D point cloudcontaining constellations of points that represent roads, sidewalks,vehicles, pedestrians, etc. in the field around the autonomousvehicle—per scan cycle.

However, the autonomous vehicle can include any other sensors and canimplement any other scanning, signal processing, and autonomousnavigation techniques or models to determine its geospatial position andorientation, to perceive objects in its vicinity, and to electnavigational actions based on sensor data collected through thesesensors.

3.1 Object Location+Motion Data

In one implementation, the autonomous vehicle includes a sensor thatoutputs a scan image containing a constellation of points, wherein eachpoint in this scan image: represents a position of a surface in theenvironment relative to the sensor (or to the autonomous vehicle moregenerally); and specifies a speed of this surface along a ray extendingfrom the sensor (or the autonomous vehicle more generally) to thissurface.

In one example, the autonomous vehicle includes a 3D scanning LIDARsensor configured to detect distances and relative speeds ofsurfaces—along rays extending from the sensor (or the autonomous vehiclemore generally) to these surfaces—in the field around the autonomousvehicle. In this example, the 3D scanning LIDAR sensor can: represent aposition of a surface in the field in spherical coordinates in a polarcoordinate system—that defines an origin at the 3D scanning LIDAR sensor(or at a reference position on the autonomous vehicle); and store thesepolar coordinates in one scan image per scan cycle (e.g., per rotation)of the sensor. Therefore, in this example, the autonomous vehicle canaccess a scan image containing data captured by a four-dimensional lightdetection and ranging sensor: mounted on the autonomous vehicle; andconfigured to generate scan images representing positions and speeds ofsurfaces within the field relative to the sensor.

In this example, the autonomous vehicle can include multiple such 3Dscanning LIDAR sensors, each configured to output one scan image perscan cycle. The autonomous vehicle can then fuse concurrent scan imagesoutput by these sensors into one composite scan image for this scancycle.

Alternately, the autonomous vehicle can include a suite of sensors thatcapture data of different types and can fuse outputs of these sensorsinto a scan image containing points at locations of surfaces in thefield and annotated with speeds of these surfaces along rays extendingbetween the autonomous vehicle and these surfaces. For example, theautonomous vehicle can include a 3D scanning LIDAR sensor: that definesa LIDAR field of view; and configured to generate a 3D point cloudcontaining a constellation of points during a scan cycle, wherein eachpoint defines a position of a region on a surface in the environmentaround the autonomous vehicle. In this example, the autonomous vehiclecan also include a fixed or scanning RADAR sensor: that defines a RADARfield of view that intersects the LIDAR field of view; and thatgenerates a list of objects or surfaces in the RADAR field of viewduring a scan cycle, wherein each object or surface in this list isannotated with a speed relative to the RADAR sensor. The autonomousvehicle then merges concurrent outputs of the LIDAR and RADAR sensorsduring a scan cycle to annotate points in the 3D point cloud with speedsof corresponding objects or surfaces detected by the RADAR sensor.

However, the autonomous vehicle can include any other type orconfiguration of sensors and can access or construct a scan imagerepresenting relative positions and relative speeds of objects orsurfaces in the field around the autonomous vehicle during a scan cycle.

4. Preloaded Rules/Assumptions

The autonomous vehicle can also store predefined worst-case motionassumptions for a generic object. In particular, the autonomous vehiclecan store assumptions for most aggressive (or “worst-case”) motion andmotion changes of any object that the autonomous vehicle may encounterduring operation and apply these worst-case motion assumptions topredict future states of all objects it encounters (e.g., pedestrians,passenger vehicles, trucks, trailers, RVs, motorcycles, street signs,lamp posts, traffic signals, telephone poles, buildings) throughoutoperation.

For example, the autonomous vehicle can store: a maximum possible speedof a generic object (e.g., 100 miles per hour; 55 meters per second);and a maximum possible linear acceleration of a generic object in anydirection (e.g., 9 meters per second per second). The autonomous vehiclecan also store a maximum possible angular velocity of a generic objectin any direction, such as as an inverse function of speed of the object.For example, the autonomous vehicle can store a maximum possible angularvelocity function that outputs a maximum possible angular velocity of ageneric object—about its center—that decreases as a linear speed of thegeneric object increases. Therefore, in this example, the maximumpossible angular velocity function can predict a maximum possibleangular velocity for a generic object when the generic object is atrest. (For example, a pedestrian standing still may exhibit a greatermaximum possible angular velocity than a sports car traveling at 30meters per second.)

The autonomous vehicle can also store object avoidance rules, such as aminimum temporal or spatial margin between the autonomous vehicle and afuture state boundary of any object in the vicinity of the autonomousvehicle.

However, the autonomous vehicle can store and implement any otherpredefined worst-case motion assumptions for a generic object and/orobject avoidance rules.

Furthermore, the autonomous vehicle can retrieve these predefinedworst-case motion assumptions and/or object avoidance rules set by anoperator or stakeholder affiliated with the autonomous vehicle or alocation in which the autonomous vehicle operates. For example, a fleetmanager or government official may assign these values to an autonomousvehicle fleet or specify these values for operation of all autonomousvehicles within a municipality, a city, a county, a district, a state, aregion, or a country, etc.

5. Stopping Distance and Stopping Duration

Blocks S110 and S112 of the method S100 recite: at a first time at anautonomous vehicle, estimating a stopping duration, for the autonomousvehicle to reach a full stop, based on a speed of the autonomous vehicleat the first time; and storing a critical time offset from the firsttime by the stopping duration. Generally, in Blocks S110 and S112, theautonomous vehicle estimates a time and/or distance in the future atwhich the autonomous vehicle may reach a full stop—if the autonomousvehicle were to immediately initiate an emergency stop procedure—basedon its current speed. For example, the autonomous vehicle can implementa preloaded function that converts vehicle speed directly into stoppingduration and/or stopping distance.

In another implementation, the autonomous vehicle estimates road surfacequalities based on data collected by various sensors in the autonomousvehicle. For example, the autonomous vehicle: implements computer visionand machine learning techniques to detect presence of puddles orstanding water in color images; and estimates dampness of the roadsurface based on presence and distribution of such puddles or standingwater. In another example, the autonomous vehicle: implements computervision and machine learning techniques to extract color data and textureinformation from color images captured by cameras on the autonomousvehicle; and interprets a type of road surface around the autonomousvehicle, such as: maintained asphalt; asphalt in disrepair (e.g.,potholed); smooth concrete; textured concrete; gravel; dirt; grass; orstanding water. In this implementation, the autonomous vehicle can thencalculate or retrieve a friction coefficient for the road surface basedon this estimated dampness and surface type of the road. The autonomousvehicle can additionally or alternatively implement a brake efficiencymodel for the autonomous vehicle to calculate a braking efficiencycoefficient based on: mileage since the autonomous vehicle's last brakeservice; and/or mileage since the autonomous vehicle's last tire change.The autonomous vehicle can then implement a braking model to estimate astopping distance and/or a stopping duration based on: the currentvehicle speed; the friction coefficient; and/or the braking efficiencycoefficient.

However, the autonomous vehicle can implement any other methods ortechniques to estimate the current stopping distance and/or the currentstopping duration of the autonomous vehicle.

The autonomous vehicle can also add a safety margin to these stoppingdistance and/or stopping duration values, such as by: adding threemeters to the stopping distance; by adding two seconds to the stoppingduration; or by multiplying these values by a safety margin (e.g.,“1.2”).

The autonomous vehicle can then calculate a critical time—representing asoonest time that the autonomous vehicle may brake to a full stop—bysumming the current time and the stopping duration.

6. Scan Image, Object Detection, and Object Motion

Blocks S120 and S122 of the method S100 recite: detecting an object in afirst scan image of the field around the autonomous vehicle captured atapproximately the first time; and, based on the first scan image,deriving a first location and a first radial speed of the object along afirst ray from the autonomous vehicle to the object. Generally, inBlocks S120 and S122, the autonomous vehicle can: access a new scanimage output by the LIDAR sensor, as described above; detect anobject—not detected in a preceding scan image—in this new scan image;and extract a limited set of high-certainty motion characteristics ofthis object (e.g., radial speed relative to the autonomous vehicle) fromthis new scan image.

In one implementation, following receipt (or generation) of a scan imagefor the current scan cycle, the autonomous vehicle executes objectdetection techniques to associate groups of points in the scan imagewith discrete objects in the field around the autonomous vehicle. Forexample, the autonomous vehicle can: aggregate a group of pointsclustered at similar depths from the autonomous vehicle and that aretagged with speeds (e.g., range rates, azimuthal speeds) that areself-consistent for a contiguous object; and associate this group ofpoints with one object in the field.

The autonomous vehicle can then extract a radial speed (or “range rate”)of the object along a ray extending from the autonomous vehicle to theobject (hereinafter the “radial direction”) and an angular velocity ofthe object relative to the autonomous vehicle from this scan image. Forexample, the autonomous vehicle can: transform the radial speeds ofpoints defining this object into absolute speeds in an absolutereference system based on a location and a velocity of the autonomousvehicle in the absolute reference system at the current time; andcalculate an angular velocity (or “yaw”) of the object about its centerin the absolute reference system during the current scan cycle based ona difference between the absolute radial speeds of the leftmost point(s)and the rightmost point(s) contained in the group of points associatedwith this object. In this example, the autonomous vehicle can also:average radial speeds stored in a subset of points near the centroid ofthis group of points that define this object; and store this averageradial speed as the radial speed of the object—relative to theautonomous vehicle—in a radial direction along a ray from the center ofthe autonomous vehicle to the centroid of this group of points. (Theautonomous vehicle can also transform this radial speed of the objectrelative to the autonomous vehicle into an absolute speed of the objectin the radial direction based on the velocity and angular speed of theautonomous vehicle during this scan cycle.)

The autonomous vehicle can repeat this process for other groups ofpoints—in this scan image—representing other objects in the field aroundthe autonomous vehicle.

6.1 Object Tracking

The autonomous vehicle can also implement object tracking techniques: tolink a group of points—representing a particular object in the currentscan image—to a similar group of points detected in the preceding scanimage; and to link these groups of points—and the objects theyrepresent—across these two scan images. However, if the autonomousvehicle fails to match a group of points detected in the current scanimage to a group of points—at similar positions and velocities—in thepreceding scan image(s), the autonomous vehicle can label this group ofpoints in the current scan image as a new object (i.e., an object firstentering the field of view of the autonomous vehicle during the currentscan cycle).

7. Bounded Future State: New Object

Block S130 of the method S100 recites calculating a first future stateboundary that represents a ground area accessible to the object from thefirst time to the critical time based on: the first location of theobject at the first time; the first radial speed of the object; and amaximum assumed acceleration, a maximum assumed angular velocity, and amaximum assumed acceleration of a generic object defined for operationof the autonomous vehicle. Generally, in Block S130, the autonomousvehicle can merge limited motion data of the object thus derived fromthe current scan image in which the object was first detected andworst-case assumptions for adversarial actions by the object tocalculate an extent of the ground area accessible to the object from thecurrent time to the critical time (i.e., over the subsequent stoppingduration) and to store this accessible ground area as a future stateboundary of the object.

More specifically, when the autonomous vehicle first detects an objectin a scan image, the autonomous vehicle can: estimate a position of acenter of the object relative to the autonomous vehicle near a centroidof the points associated with this object in this scan image; derive ayaw rate of the object relative to the autonomous vehicle based on speedvalues stored in this group of points associated with this object in thescan image; and derive a speed of the object in the radial direction(i.e., along a ray extending from the autonomous vehicle to the object)as described above. However, the scan image in which the autonomousvehicle first detects the object may not contain sufficient data toenable the autonomous vehicle to derive the absolute velocity of theobject or the speed of the object perpendicular to the radial direction(hereinafter the azimuthal direction). Therefore, the autonomous vehiclecan implement worst-case assumptions for the current speed of the objectand future accelerations of the object to calculate a future stateboundary that represents a ground area that is accessible to the objectfrom the current time to the critical time in a worst-case scenario.

In one implementation, the computer system calculates a maximum possiblespeed of the object at each of many directions offset radially about thecenter of the object (e.g., one hundred directions radially offset by3.6°) based on: the assumed maximum possible speed of a generic object;and the speed of the object in the radial direction. For a firstdirection in this set, the computer system then calculates a firstintegral of the maximum possible speed of the object in this firstdirection and the measured angular velocity of the object over time fromthe current time to the critical time. For this first direction, theautonomous vehicle also: implements an acceleration rule function thatlinks angular velocity and speed in the radial direction to a maximumpossible rate of acceleration in this first direction for a genericobject to estimate a maximum possible rate of acceleration of the objectin this first direction; and calculates a second (double) integral ofthe maximum possible rate of acceleration of the object (limited by themax possible speed of a generic object) in the first direction over timefrom the current time to the critical time. The autonomous vehicle thensums the first and second integrals to calculate a maximum possibledistance traversed by the object in the first direction and locates afirst vertex of the future state boundary on a ray extending from thecenter of the object along the first direction and offset from thecenter of the object by this maximum possible distance traversed. Theautonomous vehicle: repeats this process for each other direction in theset to define a vertex of the future state boundary in each of thesedirections; calculates a spline through each of these vertices; andstores an area encompassed by this spline as the future state boundaryfor this object.

Therefore, because the autonomous vehicle has limited informationrelated to the velocity of the object during this first scan cycle inwhich the object is visible, the autonomous vehicle can: implementworst-case assumptions for the current speed and future acceleration ofthe object in order to predict a worst-case ground area that may beaccessible to the object from the current time to the critical time(i.e., the soonest time that the autonomous vehicle may brake to a fullstop). The autonomous vehicle can then define a secure ground areaoutside of this future state boundary of the object and executenavigational actions to remain within the secure ground area such thatany collision between the autonomous vehicle and the object may occuronly after the autonomous vehicle has come to a full stop (and such thata collision with the object may be solely the responsibility of theobject and not the autonomous vehicle). In particular, the autonomousvehicle can initiate an avoidance maneuver to avoid the future stateboundary of the object if the current location of the autonomous vehiclefalls near (e.g., within a threshold distance of) the future stateboundary. Otherwise, the autonomous vehicle can: verify a very highconfidence that the autonomous vehicle will avoid collision with theobject—even given a most-adversarial action by the object—if theautonomous vehicle continues to operate along its current trajectory andat its current velocity until at least the next scan cycle; andtherefore mute the object from path planning decisions for the currentscan cycle.

For example, if the current location of the autonomous vehicle is veryfar from the future state boundary of the object, the autonomous vehiclecan mute the object from path planning decisions for the current scancycle. However, if the current location of the autonomous vehicle iswithin a threshold distance (e.g., ten meters, four seconds) from thefuture state boundary of the object, the autonomous vehicle can includethe object in path planning decisions for the current scan cycle, suchas by: slowing the autonomous vehicle by a magnitude and/or at a rateinversely proportional to proximity of the autonomous vehicle to theperimeter of the future state boundary of the object; and/or adjusting asteering angle of the autonomous vehicle to shift the trajectory of theautonomous vehicle away from the future state boundary of the object.

8. Bounded Future State: Extant Object

Generally, the autonomous vehicle may capture images with relativelyhigh resolution at relatively long distances from the autonomous vehiclesuch that the autonomous vehicle typically falls at a distancesignificantly outside of a future state boundary thus calculated for anobject when the autonomous vehicle first detects this object in a scanimage. Therefore, the autonomous vehicle may commonly mute an objectfrom path planning decisions during a scan cycle in which the autonomousvehicle first detects the object. However, the autonomous vehicle canalso track this object over subsequent scan images, derive additionalmotion characteristics of this object from these scan images, update thefuture state boundary for the object accordingly, and selectively muteor consider the object during these later scan cycles based on theautonomous vehicle's concurrent positions and these refined future stateboundaries of the object.

In one implementation, the autonomous vehicle captures a second scanimage during a second scan cycle succeeding the first scan cycle inwhich the autonomous vehicle first detects an object, as describedabove. The autonomous vehicle then implements methods and techniquesdescribed above: to derive additional motion characteristics (e.g.,speed in the azimuthal direction, angular velocity, and absolutevelocity) of the object from this second scan image and differencesbetween the first and second scan images; to replace a worst-caseassumption for the speed of the object with these derived motion data;and to recalculate the future state boundary for the object accordingly.

In one implementation, the autonomous vehicle: accesses a second scanimage captured during the second scan cycle following the first scancycle described above; implements object-tracking techniques toassociate a group of points in the second scan cycle with the objectdetected in the first scan image; estimates a center of the object inthe first and second images; extracts a first position of the object ata first time of the first scan cycle from the first scan image; extractsa second position of the object at a second time of the second scancycle from the second scan image; calculates a spatial distance betweenthe first and second positions; estimates a current velocity of theobject relative to the autonomous vehicle by dividing the spatialdistance by a time interval between the first and second scan cycles.

(However, because the scope of the object represented by groups ofpoints in the first and second images may differ and because the timeinterval between the first and second scan cycles may be short (e.g.,ten milliseconds), the change in position of the object from the firstscan cycle to the second scan cycle may be prone to significant error.More specifically, an uncertainty of this derived velocity of the objectmay be relatively high in comparison to the radial speed of the objectextracted from the current scan image. Therefore, the autonomous vehiclecan multiply this calculated velocity of the object—relative to theautonomous vehicle—by an error margin, such as “1.5.” Furthermore, asthe autonomous vehicle tracks this object over multiple consecutive scancycles, the autonomous vehicle can calculate a combination (e.g., aweighted average) of these derived velocities of the object in order toreduce some error in this calculation.)

In this implementation, the autonomous vehicle can also: transform thecurrent velocity of the object relative to the autonomous vehicle(adjusted by the error margin) into an absolute velocity of the objectbased on a velocity of the autonomous vehicle during this time interval;implement methods and techniques described above to calculate the speedof the object in the radial direction and the angular velocity of theobject based on speed values contained in points in this group; andderive the speed of object in the azimuthal direction—perpendicular tothe radial direction—based on the absolute velocity of the object andthe speed of the object in the radial direction.

The autonomous vehicle can thus derive a more complete motionprofile—such as including a true absolute velocity—of the object duringthis second scan cycle based on data extracted from second scan imageand the preceding scan image.

The autonomous vehicle can then implement methods and techniquesdescribed above: to recalculate a critical time of the autonomousvehicle based on the autonomous vehicle's speed during this second scancycle; and to recalculate a future state boundary of the object from thecurrent time to this revised critical time based on the true (absoluteor relative) velocity of the object (rather than the worst-case speed ofa generic object), the angular velocity of the object, and the maximumpossible acceleration of a generic object—limited by the maximumpossible speed of a generic object—from the current time to the revisedcritical time.

Therefore, because the true velocity of the object may often be(significantly) less than the maximum assumed speed of a generic object,this revised future state boundary of the object—thus recalculated basedon additional motion data collected during this second scan cycle—may besignificantly smaller than the initial future state boundary of theobject calculated by the autonomous vehicle after first detecting theobject.

The autonomous vehicle can then implement methods and techniquesdescribed above to selectively mute this object from path planningconsiderations during this second scan cycle based on a distance of theobject from the perimeter of this revised future state boundary of theobject.

The autonomous vehicle can repeat the process for each subsequent scanimage thus captured by the autonomous vehicle in order to refine andupdate the future state boundary for this object, such as until theautonomous vehicle passes this object or until this object moves outsideof the field of view of the autonomous vehicle.

9. Bounded Future State: Obscured Object

In one variation, the autonomous vehicle can: define a virtual object ina region of the field around the autonomous vehicle obscured by adetected object (e.g., a passenger vehicle, a truck, a building);implement methods and techniques similar to those described above toassign worst-case motion characteristics to this virtual object and todefine a virtual future state boundary for this virtual object based onthis worst-case motion characteristics; and refine these worst-casemotion characteristics of the virtual object based on a contractingrange of possible motion characteristics of the virtual object over timeand the recalculated the virtual future state boundary of the virtualobject accordingly. More specifically, in this variation, the autonomousvehicle can anticipate presence of an undetected object behind adetected object and implement methods and techniques similar to thosedescribed above to bound possible future states of the undetected objectand selectively mute the possibility of an undetected object behind thedetected object based on distance navigational actions to remain in aspace inaccessible to this undetected object

In one implementation, the autonomous vehicle first detects a firstobject—spanning an azimuthal distance—in a first scan image. Theautonomous vehicle then implements methods and techniques describedabove to calculate a future state boundary of the first object based onmotion data extracted from the first scan image and revises this futurestate boundary of the first object based on motion data extracted fromsubsequent scan images.

Concurrently, the autonomous vehicle: defines a virtual objectimmediately behind the first object (e.g., two meters behind the firstobject); assigns a worst-case speed in all directions and a worst-caseacceleration in all direction—up to the maximum possible speed of ageneric object—to the virtual object; and calculates a virtual futurestate boundary for the virtual object according to these worst-casemotion values. For example, the autonomous vehicle can: assume that thevirtual object is moving at the maximum possible speed of a genericobject in all directions (other than directions currently obscured byfirst object) at the current time; and calculate a virtual future stateboundary for the virtual object based on an integral of this maximumpossible speed in all directions (other than directions currentlyobscured by first object) over the current stopping time of theautonomous vehicle. The autonomous vehicle can then implement methodsand techniques described above to verify that the current location ofthe autonomous vehicle is outside of this virtual future state boundaryand to selectively mute consideration of this virtual object from pathplanning considerations during the current scan cycle accordingly.

During the next scan cycle, the autonomous vehicle can similarly: accessa next scan image; implement object tracking techniques to detect thefirst object in this next scan image and to link this first object inthis next scan image to the first object detected in the preceding scanimage. Then, if the autonomous vehicle fails to detect a new objectappearing from behind the first object, in this next scan image, thenthe autonomous vehicle can confirm that the azimuthal speed of thevirtual object—relative to the first object—was insufficient to pass theazimuthal length of the first object in the field of view of theautonomous vehicle over a time interval from the preceding scan cycle tothis next scan cycle. More specifically, because the autonomous vehiclefailed to the detect a new object appearing behind the first object inthis next scan image, the autonomous vehicle can predict that the speedof the virtual object—relative to the first object and along theazimuthal direction defined by the autonomous vehicle does not exceed awidth of the first object divided by the time interval between thepreceding and current scan cycles. Therefore, in this implementation,the autonomous vehicle can: extract a azimuthal length of the firstobject from the current scan image (or an average length of the firstobject extracted from the preceding and current scan images); derive aazimuthal speed of the first object—relative to the autonomousvehicle—based on a change in the position of the first object betweenthe first scan image and the second image; and calculate a maximumpossible azimuthal speed of the virtual object—relative to the firstobject and along the azimuthal direction defined by the autonomousvehicle—between the first and second scan cycles based on the azimuthallength of the first object and the time interval between the first andsecond scan cycles, assuming that the virtual object is infinitelynarrow. The autonomous vehicle can then: calculate a maximum possibleazimuthal speed of the virtual object relative to the autonomous vehicleby summing the azimuthal speed of the first object relative to theautonomous vehicle and the azimuthal speed of the virtual objectrelative to the first object; and then implement methods and techniquesdescribed above (for a new object) to calculate a virtual future stateboundary for the virtual object based on the maximum azimuthal speedthus estimated for the virtual object.

The autonomous vehicle can repeat this process for the subsequent scancycle, including: further revising the maximum possible azimuthal speedof the virtual object—along the azimuthal direction relative to theautonomous vehicle—based on the length of the first object and the timeinterval over the set of scan images in which the autonomous vehicledetected the first object; recalculating maximum possible speeds andaccelerations of the virtual object in various directions based on thismaximum possible azimuthal speed of the virtual object; and refining thevirtual future state boundary of the virtual object based on thesemaximum possible speeds, maximum possible accelerations, and the maximumpossible azimuthal speed of the virtual object.

The autonomous vehicle can also define multiple virtual objects behindthe first object and implement similar methods and techniques to definevirtual future state boundaries for each of these virtual objects, suchas: a first virtual object immediately behind the first object; a secondvirtual object two meters behind the first object; a third virtualobject ten meters behind the first object; and a fourth virtual object20 meters behind the first object; etc.

For example, upon detecting a telephone pole in a first scan image, theautonomous vehicle can execute the foregoing methods and techniques tocalculate virtual future state boundaries for each of these virtualobjects. In this example, if the autonomous vehicle tracks thistelephone pole over multiple consecutive scan images (e.g., capturedover one second) and fails to detect a new object coming in to viewbehind the telephone pole, the autonomous vehicle can define a set ofvirtual future state boundaries that are indicative of: absence of apedestrian walking faster than 0.2 meter per second in the azimuthaldirection immediately behind the telephone pole (i.e., the first virtualobject); absence of a motorcycle moving faster than 0.2 meter per secondin the azimuthal direction in a region approximately two meters behindthe telephone pole (i.e., the second virtual object); absence of apassenger vehicle moving faster than one meter per second in theazimuthal direction in a region approximately ten meters behind thetelephone pole (i.e., the third virtual object); and absence of a truckvehicle moving faster than one meter per second in the azimuthaldirection in a region approximately 20 meters behind the telephone pole(i.e., the third virtual object).

Furthermore, in this variation, upon detecting a second object appearingbehind the first object and at a particular radial distance from theautonomous vehicle, the autonomous vehicle can: transfer motioncharacteristics thus derived for a virtual object near this particularradial distance from the autonomous vehicle onto this second object; andthen implement these motion characteristics transferred from the virtualobject to calculate a future state boundary of this second object.

10. Other Objects

Generally, the autonomous vehicle can execute multiple instances of theforegoing processes concurrently to calculate future state boundariesfor many discrete objects detected in a current scan image, to defineone or more virtual objects behind each of these detected objects, todefine a virtual future state boundary for each of these objects, and torefine the future state boundaries over time.

11. Access Zone

The autonomous vehicle can then elect a next navigational action basedon a subset of these detected and virtual objects based on proximity ofthe autonomous vehicle to future state boundaries of these detected andvirtual objects.

In one implementation, the autonomous vehicle: aggregates future stateboundaries for detected and virtual objects calculated during thecurrent scan cycle; and assembles these future state boundaries—based onlocations of their detected and virtual objects relative to theautonomous vehicle during the current scan cycle—into one compositefuture state boundary that defines all locations accessible to thesedetected and virtual objects from the current time to the critical timebased on worst-case adversarial motion characteristics of these objects.(In this variation, in order to reduce complexity of this compositefuture state boundary, the autonomous vehicle can also: select a subsetof future state boundaries that define perimeters that fall within thepreset minimum temporal or spatial margin of the current location of theautonomous vehicle. The autonomous vehicle can then assemble this subsetof future state boundaries into one composite future state boundary.)

The autonomous vehicle can then store the converse of this compositefuture state boundary as an access zone for the autonomous vehicle. Morespecifically, this access zone can define a ground area that theautonomous vehicle can operate within for at least the time intervalfrom the current scan cycle to the next scan while maintaining a veryhigh confidence that the autonomous vehicle can brake to a full stopprior to collision with any detected object, even if one (or many) ofthese objects initiates an adversarial action (e.g., acceleratingrapidly to the maximum possible speed of a generic object) during thecurrent scan cycle. The autonomous vehicle can also align ageoreferenced road network to this access zone and further removeregions of the access zone that extend outside of a road area defined inthis road network.

The autonomous vehicle can then calculate a navigational action that,when executed by the autonomous vehicle, maintains the autonomousvehicle within the access zone, such as: slowing the autonomous vehicleto reduce a rate of approach to an edge of the access zone if theautonomous vehicle is within the temporal or spatial margin of thisedge; and/or by adjusting a steering angle of the autonomous vehicle inorder to redirect the autonomous vehicle toward a segment of the accesszone that extends further from the autonomous vehicle. (The autonomousvehicle can also weight these navigational actions toward maintainingthe autonomous vehicle on or near an assigned route.)

Therefore, the autonomous vehicle can: leverage future state boundariesfor newly-detected objects, extant detected objects, and virtual objectsto calculate a ground area in which the autonomous vehicle can operatewithin over a limited period of time (e.g., a time interval between twoconsecutive scan cycles) while maintaining a high confidence that theautonomous vehicle can brake to a full stop before collision with any ofthese objects; and then define and execute navigational actions tomaintain the autonomous vehicle within this access zone. The autonomousvehicle can then repeat this process for each subsequent scan cycleduring operation.

12. Changing Object and Points

Furthermore, because the autonomous vehicle may not rely on objectclassification or identification to predict a type of an object and topredict motion of the object accordingly, the autonomous vehicle maydefine a group of points that spans multiple real objects in the field,such as if these objects are moving along similar trajectories and atsimilar velocities. However, the autonomous vehicle can implement theforegoing methods and techniques to calculate, refine, and avoid afuture state boundary for this “grouped object” until a time that thesereal objects are not longer moving along similar trajectories and/or atsimilar velocities, at which time the autonomous vehicle can:distinguish these objects in a current scan cycle; transfer motioncharacteristics from the preceding grouped objects onto each of thesedistinct objects; and then calculate a future state boundary for each ofthese objects, as described above.

Similarly, the autonomous vehicle may distinguish two clusters of pointsthat represent a single real object and implement methods and techniquesdescribed above to calculate, refine, and avoid future state boundariesfor both of these clusters, such as up until a time that the autonomousvehicle determines that proximity and self-consistency of radial speeds(or range rates) of points in these two clusters indicate a singularobject.

Additionally or alternatively, the autonomous vehicle can implement theforegoing methods and techniques to calculate, refine, and avoid futurestate boundaries for individual points and smaller clusters of pointsthat represent subregions of objects in the field around the autonomousvehicle.

13. Motion Disambiguation

One variation of the method S100 shown in FIG. 2 includes, for a firstscan cycle: accessing a first scan image containing data captured by asensor on the autonomous vehicle at a first time in Block S104;identifying a first group of points in the first scan image representingan object in a field proximal the autonomous vehicle in Block S120, eachpoint in the first group of points including a first range value fromthe sensor to a surface on the object, a first azimuthal position of thesurface on the object relative to the sensor, and a first radialvelocity of the surface of the object relative to the sensor;calculating a first correlation between first radial velocities andfirst azimuthal positions of points in the first group of points inBlock S122; and, based on the first correlation, calculating a firstfunction that relates possible tangential velocities of the object andpossible angular velocities of the object at the first time in BlockS122. This variation of the method S100 similarly includes, for a secondscan cycle: accessing a second scan image containing data captured bythe sensor at a second time in Block S104; identifying a second group ofpoints in the second scan image representing the object in the field inBlock S120; calculating a second correlation between second radialvelocities and second azimuthal positions of points in the second groupof points in Block S122; and, based on the second correlation,calculating a second function that relates possible tangentialvelocities of the object and possible angular velocities of the objectat the second time in Block S122. This variation of the method S100further includes estimating a second tangential velocity of the objectand a second angular velocity of the object, relative to the autonomousvehicle, at the second time based on an intersection of the firstfunction and the second function in Block S124.

In this variation, the method S100 can similarly include, for a firstscan cycle: accessing a first scan image containing data captured by asensor on the autonomous vehicle at a first time in Block S104;identifying a first group of points in the first scan image representingan object in a field proximal the autonomous vehicle in Block S120, eachpoint in the first group of points including a first range value fromthe sensor to a surface on the object, a first position of the surfaceon the object relative to the autonomous vehicle, and a first radialvelocity of the surface of the object relative to the autonomousvehicle; calculating a first correlation between first radial velocitiesand first positions of points in the first group of points in BlockS122; and, based on the first correlation, calculating a first functionthat relates possible linear motion of the object and possible angularmotion of the object at the first time in Block S122. This variation ofthe method S100 can also include, for a second scan cycle: accessing asecond scan image containing data captured by the sensor at a secondtime in Block S104; identifying a second group of points in the secondscan image representing the object in Block S120; calculating a secondcorrelation between second radial velocities and second positions ofpoints in the second group of points in Block S122; and, based on thesecond correlation, calculating a second function that relates possiblelinear motion of the object and possible angular motion of the object atthe second time in Block S122. This variation of the method S100 canfurther include estimating a linear motion of the object and an angularmotion of the object, relative to the autonomous vehicle, at the secondtime based on an intersection of the first function and the secondfunction in Block S126.

Additionally or alternatively, in this variation, the method S100 caninclude, for each scan cycle in a sequence of scan cycles at theautonomous vehicle: accessing a scan image containing data captured by asensor on the autonomous vehicle at a scan time in Block S104;identifying a group of points in the scan image representing an objectin a field proximal the autonomous vehicle in Block S120, each point inthe group of points including a position of a surface on the objectrelative to the autonomous vehicle and a radial velocity of the surfaceof the object relative to the autonomous vehicle; and calculating afunction based on a correlation between radial velocities and positionsof points in the group of points, the function relating possible linearmotion of the object and possible angular motion of the object at thescan time in Block S122. This variation of the method S100 can alsoinclude estimating a current linear motion of the object and a currentangular motion of the object, relative to the autonomous vehicle, at acurrent time based on an intersection of a current function and apreceding function, the current function derived from a first scan imagecontaining data captured at the current time, the preceding functionderived from a second scan image containing data captured prior to thecurrent time in Block S126.

13.1 Three Degrees of Freedom

Generally, in this variation, the autonomous vehicle: derives arelationship between tangential and angular velocities of an object inits field based on characteristics of a group of points representing theobject in a scan image output by a sensor on the autonomous vehicle;further bounds the possible current motion of this object based on themeasured radial velocity of the object and this derived relationshipbetween the tangential and angular velocities of the object; and furtherrefines a future state boundary calculated for this object based onpossible current motion of the object and motion limit assumptions ofground-based objects.

In particular, in this variation, the autonomous vehicle can leverage arelationship between radial distance, radial velocity, tangentialvelocity, and angular velocity of an object and a limited number of(e.g., as few as two) distance, angle, and range rate measurements tocalculate a narrow range of possible tangential and angular velocitiesof the object and therefore a narrow range of possible total velocitiesof the object during a singular scan cycle. The autonomous vehicle canalso: track the object in a scan image output by the sensor during anext scan cycle; repeat the foregoing process based on this next scanimage; and merge results of the current and preceding scan cycles tonarrow a motion estimate of the object to a singular set of tangential,angular, and total velocity values (or very narrow ranges thereof).Then, rather than calculate a future state boundary of the object basedon maximum acceleration assumptions and a maximum velocity and a rangeof possible velocities of the object, the autonomous vehicle can insteadcalculate a narrower future state boundary of the object based onmaximum acceleration assumptions and a singular total velocity of theobject derived by the autonomous vehicle with two independentmeasurements. More specifically, the autonomous vehicle can executeBlocks of the method S100 to compress a set of two-dimensional motionpossibilities of a nearby object into a set of one-dimensional motionpossibilities for this object.

Generally, motion of ground-based objects (e.g., vehicles, pedestrians),may occur approximately with in a horizontal plane (i.e., parallel to aground plane), including linear motion along an x-axis, linear motionalong a y-axis, and rotation about a z-axis normal to the horizontalplane, which may be represented as a linear velocity in the horizontalplane and an angular velocity about an axis normal to the horizontalplane. This variation of the method S100 is thus described below asexecuted by the autonomous vehicle to derive tangential, angular, andtotal velocities of an object within a horizontal plane given radialvelocities and positions (e.g., ranges and angles) of points on theobject in the horizontal plane. However, the autonomous vehicle canimplement similar methods and techniques to derive linear and angularvelocities of objects in 3D space (i.e., three linear velocities andthree angular velocities) and an absolute or relative total velocity ofobjects accordingly in 3D space.

More specifically, the sensor may be configured to return range (i.e.,distance), azimuth angle, and speed along a ray from a surface in thefield back to the sensor (i.e., radial velocity or “Doppler”) for eachsurface in the field that falls within the field of view of the sensorduring a scan cycle. The tangential velocity (e.g., linear motion in adirection perpendicular to the radial velocity and in a horizontalplane) and angular velocity (e.g., angular motion about a yaw axis ofthe autonomous vehicle) of a group of surfaces—that represent an objectin a scan image—are contained in the range, azimuthal angle, and speeddata of points in this scan image. However, the specific tangential andangular velocities of the object are indeterminate from range, azimuthangle, and radial velocity contained in this group of points.Furthermore, tracking the object across multiple scan images andderiving a tangential velocity of the object from changes in position ofthe object depicted across multiple scan images introduces significanterror: especially if the perspective of the object in the field of viewof the autonomous vehicle changes from one scan cycle to the nextbecause the object will appear to change in size over consecutive scancycles, which will be incorrectly represented in the calculatedtangential velocity of the object; especially if a region of the objectobscured from the sensor changes over consecutive scan cycles becausethe velocity of the sensible window over the visible region of theobject will be incorrectly represented in the calculated tangentialvelocity of the object; and especially insofar as points across twoconsecutive scan images are unlikely to represent the same surfaces onthe object if the object moves relative to the autonomous vehicle overconsecutive scan cycles.

However, the autonomous vehicle can execute Blocks of the method S100 toderive a first relationship (or “correlation”) between tangential andangular velocities of the object during a first scan cycle based onrange, azimuth angle, and radial velocity data contained in a group ofpoints representing an object in a first scan image. The autonomousvehicle can then: repeat this process during a second scan cycle tocalculate a second relationship between tangential and angularvelocities of the object during a second scan cycle based on range,azimuth angle, and radial velocity data contained in a group of pointsrepresenting the object in a second scan image; and derive a specifictangential velocity and specific angular velocity (or a narrow rangethereof) of the object that is congruent with both the first and secondrelationships.

13.2 First Scan Cycle

In one implementation shown in FIG. 2 , a sensor on the autonomousvehicle executes a first scan cycle at a first time T₀ and returns afirst scan image containing radial velocities, distances, and angularpositions of a constellation of points (e.g., small surfaces, areas)throughout the field around the autonomous vehicle. The autonomousvehicle then: implements methods and techniques described above toidentify a group (or “cluster”) of points corresponding to a discreteobject in the field; and calculates a radial velocity V_(rad,0) of theobject at T₀ based on a measure of central tendency of the radialvelocities of points in this group. For example, the autonomous vehiclecan calculate this measure of central tendency as the arithmetic mean ofthe radial velocities of points in this group. Similarly, the autonomousvehicle can calculate a first radius R₀ of the object at T₀ based on(e.g., equal to) a difference between the maximum and minimum azimuthalpositions of points in the group—that is, a radial length of the groupof points.

The autonomous vehicle then: calculates positions of points in the grouprelative to the autonomous vehicle (e.g., within a polar coordinatesystem) based on the range values and angular positions of these pointsat T₀; and calculates a correlation between the angular positions andradial velocities of these points. In one example, the autonomousvehicle calculates this correlation as the slope of the best-fit (or“trend”) line through these radial velocities divided by: the cosine ofthe angles between the points and the average position of this group ofpoints; and the sine of the angles between the points and the averageposition of this group of points.

The autonomous vehicle then calculates a first slope S₀ of this best-fitline, which represents a relationship between the tangential velocityV_(tan,0) and the angular velocity ω₀ of the object at time T₀. Inparticular, this slope S₀ may represent a difference between: V_(tan,0);and the product of ω₀ multiplied by a first radius R₀ of the object, inthe field of view of the sensor, at time T₀. The autonomous vehicle cantherefore generate a first function (e.g., a linear function) F₀ thatrelates V_(tan,0) and ω₀ of the object based on the slope S₀ and theradius R₀ at time T₀.

Based on function F₀, the autonomous vehicle can then calculate line L₀,which represents possible V_(tan,0) and ω₀ motion combinations of theobject at time T₀ given the current radial velocity V_(rad,0) of theobject at T₀.

In a similar implementation, the autonomous vehicle solves for themotion of the object in three degrees of freedom, including: linearmotion in the radial direction (i.e., a radial velocity) along a raybetween the sensor and the object; linear motion in a tangentialdirection orthogonal to the radial direction and in a horizontal plane;and angular motion in a yaw direction about an axis orthogonal to theradial and tangential directions. In this implementation, the autonomousvehicle can: project first radial velocities versus first azimuthalpositions of points—in the first group of points representing theobject—onto a horizontal plane (i.e., a 2D space approximately parallelto a road surface); calculate a first radius of the object at the firsttime based on a range of first azimuthal positions of points in thefirst group of points; calculate a first radial velocity of theobject—relative to the autonomous vehicle—at the first time based on afirst measure of central tendency (e.g., a mean) of first radialvelocities of points in the first group of points; calculate a firstlinear trend line through first radial velocities versus first azimuthalpositions of points in the first group of points; and calculate a firstcorrelation based on a first slope of the first linear trend line, whichrepresents a relationship between a first tangential velocity of theobject and a first angular velocity of the object at the first time. Inparticular, the first slope can represent a difference between: thefirst tangential velocity of the object at the first time; and theproduct of the first radius of the object at the first time and thefirst angular velocity of the object at the first time. The autonomousvehicle can then calculate a first linear function that relates possibletangential velocities of the object at the first time and possibleangular velocities of the object, relative to the autonomous vehicle, atthe first time based on the first slope and the first radius at thefirst time (e.g., the possible tangential velocities and angularvelocities that satisfy the relation: S₀=V_(tan,0)−R₀ω₀). Morespecifically, this first function can relate possible tangentialvelocities of the object and possible angular velocities of the object,at the first time, within a horizontal plane approximately parallel to aroad surface.

Therefore, the autonomous vehicle can compress a 2D surface of possibleV_(tan,0) and ω₀ motion combinations of the object—previously boundedonly by maximum velocity assumptions of ground-based objects describedabove—into a 1D line of possible V_(tan,0) and ω₀ motion combinations ofthe object at time T₀. More specifically, the autonomous vehicle canthus reduce three unknown characteristics of the object moving in 2Dspace (i.e., V_(rad,0), V_(tan,0), ω₀) down to a singular unknown—thatis, which point along line L₀ represents the true V_(tan,0) and ω₀ ofthe object at T₀, as all combinations of V_(tan,0) and ω₀ on L₀ resolvethe measured radial velocities of the object at T₀.

13.3 Bounding

In this implementation, the autonomous vehicle can also: calculate arange of V_(tan,0) and ω₀ values that, in combination with V_(rad,0),produce a maximum total velocity equal to or less than the maximumobject velocity assumption described above; and bound line L₀ to thisrange of V_(tan,0) and ω₀ values. The autonomous vehicle canadditionally or alternatively bound line L₀ to the maximum tangentialand angular velocity assumptions of ground-based objects describedabove, as shown in FIG. 2 .

Then, given V_(rad,0) of the object at time T₀ and the range ofV_(tan,0) and ω₀ motion combinations represented on bounded line L₀, theautonomous vehicle can calculate a range of possible total velocities ofthe object relative to the autonomous vehicle at T₀. Additionally oralternatively, the autonomous vehicle can merge its absolute velocity atT₀ with V_(rad,0) of the object and the range of V_(tan,0) and ω₀ motioncombinations represented on this bounded line L₀ to calculate a range ofpossible absolute velocities of the object at T₀.

13.4 Future State Boundary after First Scan Cycle

The autonomous vehicle can then: implement methods and techniquesdescribed above to calculate a future state boundary of the object basedon these possible relative or absolute velocities of the object andmaximum object acceleration assumptions; and selectively modify itstrajectory accordingly, as described above.

For example, in Blocks S110 and S112, the autonomous vehicle canimplement methods and techniques described above to: access a secondimage of the field captured by a second sensor, arranged on theautonomous vehicle, at approximately the first time; interpret a type ofa road surface occupied by the autonomous vehicle at the first timebased on a set of features extracted from the second image; predict aquality of the road surface based on the set of features; estimate afriction coefficient for tires of the autonomous vehicle acting on theroad surface based on the type of the road surface and the quality ofthe road surface; estimating a stopping duration of the autonomousvehicle at the first time based on a vehicle speed of the autonomousvehicle at the first time, the friction coefficient, and a storedbraking model for the autonomous vehicle; and calculate a critical timeoffset from the first time by the stopping duration.

In this example, in Block S102, the autonomous vehicle can also access aset of predefined motion limit assumptions, such as including: a maximumlinear acceleration of the generic ground-based object; a maximum linearvelocity of a generic ground-based object; and/or a maximum angularvelocity of the generic ground-based object.

Furthermore, in Block S122, the autonomous vehicle can: derive a firstlocation of the object at the first time based on first range values andfirst azimuthal positions of points in the first group of points; andthen calculate a first future state boundary of the autonomous vehiclebased on a) possible tangential velocities of the object and possibleangular velocities of the object, at the first time, defined by thefirst function; the first radial velocity, b) the first location, and c)the set of predefined motion limit assumptions. More specifically, theautonomous vehicle can calculate a first ground area accessible to theobject from the first time to the critical future time by: integratingthe radial velocity and possible tangential and angular velocity pairs(or the “first motion”) of the object at the first time—moving at up tothe maximum angular velocity and accelerating up to the maximum linearvelocity according to the maximum linear acceleration defined by thepredefined motion limit assumptions—from the first location of theobject over the stopping duration. The autonomous vehicle can then storethis first ground area as the future state boundary of the object forthe first time.

13.5 Second Scan Cycle

The autonomous vehicle can then repeat the foregoing process based on anext set of radial velocities, distances, and angular positions ofpoints output by the sensor during a next scan cycle.

In particular, at a second time T₁, the sensor executes a second scancycle and returns a second scan image containing radial velocities,distances, and angular positions of a constellation of points throughoutthe field around the autonomous vehicle. The autonomous vehicle thenimplements methods and techniques described above: to identify a groupof points corresponding to discrete objects in the field; and to trackthe group of points representing the object from the first scan cycle toa corresponding group of points representing the object in this secondscan cycle.

The autonomous vehicle then repeats the process described above to:calculate a central measure of the radial velocities of points in thisgroup; store this central measure as a radial velocity V_(rad,1) of theobject at time T₁; calculate a second slope S₁ for these data, whichrepresents a relationship between the tangential velocity V_(tan,1) andthe angular velocity ω₁ of the object at time T₁. For example, thisslope S₁ may represent a difference between: V_(tan,1); and the productof ω₁ of the object at T₁ multiplied by a first radius R₁ of the objectposition, relative to the autonomous vehicle, at time T₁. The autonomousvehicle can therefore calculate the radius R₁ of a measure of centraltendency of the position of the group of points that represent theobject at T₁ and generate a second function (e.g., a linear function) F₁that relates V_(tan,1) and ω₁ of the object based on slope S₁ and radiusR₁ at time T₁.

Based on function F₁, the autonomous vehicle can then calculate line L₁,which represents possible V_(tan,1) and ω₁ motion combinations of theobject at time T₁ given the current radial velocity V_(rad,1) of theobject at T₁.

Subsequently, the autonomous vehicle can calculate an intersection oflines L₀ and L₁ (or functions F₀ and F₁) which represents the actual (ora close approximation of) V_(tan,1) and ω₁ of the object at T₁, as shownin FIG. 2 . Thus, from the first scan cycle at T₀ to the subsequent scancycle at T₁, the autonomous vehicle can solve all three unknown motioncharacteristics of the object—including V_(tan,1), ω₁, and V_(rad,1)—atT₁.

Then, given V_(rad,1), V_(tan,1), and _(w1) represented at theintersection of line L₀ and L₁, the autonomous vehicle can calculate thetotal velocity V_(tot,rel,1) of the object relative to the autonomousvehicle at T₁. Additionally or alternatively, the autonomous vehicle canmerge its absolute velocity at T₁ with V_(rad,1), V_(tan,1), and _(w1)of the object to calculate the total absolute velocity V_(tot,abs,1) ofthe object at T₁.

Therefore, in the foregoing implementation, the autonomous vehicle can:project second radial velocities versus second azimuthal positions ofpoints—in the second group of points representing the object—onto ahorizontal plane (i.e., a 2D space approximately parallel to a roadsurface); calculate a second radius of the object at the second timebased on a range of second azimuthal positions of points in the secondgroup of points; calculate a second radial velocity of theobject—relative to the autonomous vehicle—at the second time based on asecond measure of central tendency (e.g., a mean) of second radialvelocities of points in the second group of points; calculate a secondlinear trend line through second radial velocities versus secondazimuthal positions of points in the second group of points; andcalculate a second correlation based on a second slope of the secondlinear trend line, which represents a relationship between a secondtangential velocity of the object and a second angular velocity of theobject at the second time. In particular, the second slope can representa difference between: the second tangential velocity of the object atthe second time; and the product of the second radius of the object atthe second time and the second angular velocity of the object at thesecond time. The autonomous vehicle can then calculate a second linearfunction that relates possible tangential velocities of the object atthe second time and possible angular velocities of the object, relativeto the autonomous vehicle, at the second time based on the second slopeand the second radius at the second time (e.g., the possible tangentialvelocities and angular velocities satisfies the relation: S1=Vtan,1−R1ω1). More specifically, this second function can relate possibletangential velocities of the object and possible angular velocities ofthe object, at the second time, within a horizontal plane approximatelyparallel to a road surface.

The autonomous vehicle can then estimate a specific second tangentialvelocity of the object and a specific second angular velocity of theobject (or a narrow range of possible tangential and angular motions ofthe object, as described below)—relative to the autonomous vehicle—atthe second time based on the intersection of the first function and thesecond function in a three-degree-of-freedom state space. Furthermore,the autonomous vehicle can execute methods and techniques describedabove to calculate the total absolute velocity of the object—relative tothe autonomous vehicle—at the second time in Block S126 based on thesecond tangential velocity of the object, the second angular velocity ofthe object, the second radial velocity of the object, and absolutevelocity of the object at the second time.

The autonomous vehicle can then: implement methods and techniquesdescribed above to calculate a future state boundary of the object basedon these possible relative or absolute velocities of the object andmaximum object acceleration assumptions; and selectively modify itstrajectory accordingly, as described above.

13.6 Accumulated Error

In this variation, the tangential and angular velocities V_(tan) and ωof the object relative to the autonomous vehicle may change between thefirst scan cycle at T₀ and the second scan cycle at T₁, which mayproduce (additional) error in-line L₀ by time T₁. The magnitude of thiserror may be related to the time offset between T₀ and T₁ and maytherefore be a function of sampling rate of the sensor.

Accordingly, the autonomous vehicle can integrate the maximum andminimum changes in tangential and angular velocities V_(tan) and ω ofthe object over the time offset from T₀ to T₁—such as based on motionlimit assumptions of objects described above—to calculate an error baron each side of line L₀(e.g., errors bars L_(0,error,low) andL_(0,error,high)). The autonomous vehicle can then calculate anintersection of L₁ and an area between error bars L_(0,error,low) andL_(0,error,high), thereby narrowing the range of possible V_(tan,1) andω₁ values of the object at T₁ while accounting for possible accumulatederror due to motion of the object relative to the autonomous vehiclefrom time T₀ to time T₁, as shown in FIG. 2 .

Then, given V_(rad,1) and the range of V_(tan,1) and ω₁ motioncombinations represented on line L₁ bounded by the error bars of lineL₀, the autonomous vehicle can calculate a range of possible totalvelocities of the object relative to the autonomous vehicle at T₁.Additionally or alternatively, the autonomous vehicle can merge itsabsolute velocity at T₁ with V_(rad,1) and the range of V_(tan,1) and ω₁motion combinations represented on this bounded line L₁ to calculate arange of possible absolute velocities of the object at T₁.

For example, the autonomous vehicle can characterize a first error ofthe first function based on an integral of the set of predefined motionlimit assumptions described above over a time difference between thefirst time and the second time in Block S126—that is, a worst-casechange in the motion of the object from the first time to the secondtime. As described above, the autonomous vehicle can; calculate a firstline that relates possible tangential velocities of the object andpossible angular velocities of the object, relative to the autonomousvehicle, at the first time based on the first correlation; calculate afirst width of the first line based on the first error; and representthe first line and the first width of the first line in the firstfunction during the first scan cycle. The first function can thereforerepresent a two-dimensional ellipse containing possible combinations ofthe first tangential velocity and the first angular velocity of theobject at the first time.

During the second scan cycle, the autonomous vehicle can similarlycalculate a second line that relates possible tangential velocities ofthe object and possible angular velocities of the object, relative tothe autonomous vehicle, at the second time based on the secondcorrelation. The autonomous vehicle can then estimate a second range oftangential velocities of the object and a second range of angularvelocities of the object—relative to the autonomous vehicle—at thesecond time based on an intersection of the first line of the firstwidth and the second line.

13.7 Best-Fit Error

In a similar implementation shown in FIG. 5 , the autonomous vehiclecan: calculate a first linear trend line through first radial velocitiesversus first azimuthal positions of points in the first group of pointsderived from the first scan image; calculate a first correlation betweena first tangential velocity of the object and a first angular velocityof the object at the first time based on the first slope of the firstlinear trend line; characterize a first error of the first linear trendline based on deviation of first radial velocities of points in thefirst group of points from the first linear trend line in Block S126;calculate a first line that relates possible tangential velocities ofthe object and possible angular velocities of the object, relative tothe autonomous vehicle, at the first time based on the firstcorrelation; calculate a first width of the first line based on thefirst error; and represent the first line and the first width of thefirst line in the first function. For example, the autonomous vehiclecan calculate a first error—and therefore a width of the firstline—proportional to the square root of the sum of the squares ofminimum distances from each point in the group to the first linear trendline. The first function can therefore represent a two-dimensionalellipse containing possible combinations of the first tangentialvelocity and the first angular velocity of the object at the first time.

The autonomous vehicle can similarly: calculate a second linear trendline through second radial velocities versus second azimuthal positionsof points in the second group of points; and calculate the secondcorrelation between a second tangential velocity of the object and asecond angular velocity of the object at the second time based on asecond slope of the second linear trend line; characterize a seconderror of the second linear trend line based on deviation of secondradial velocities of points in the second group of points from thesecond linear trend line; calculate a second line that relates possibletangential velocities of the object and possible angular velocities ofthe object, relative to the autonomous vehicle, at the second time basedon the second correlation; calculate a first width of the first linebased on the first error; and represent the second line and the secondwidth of the second line in the second function. The second function cantherefore represent a two-dimensional ellipse containing possiblecombinations of the second tangential velocity and the second angularvelocity of the object at the second time.

Accordingly, the autonomous vehicle can estimate a second range oftangential velocities of the object and a second range of angularvelocities of the object—relative to the autonomous vehicle—at thesecond time based on an intersection of the first line of the firstwidth and the second line of the second width. Though the autonomousvehicle may not resolve specific tangential and angular velocities ofthe object at the second time, the autonomous vehicle can calculate arange of possible tangential and angular velocities of the object at thesecond time—based on the intersection of the first function and thesecond function—that is much narrower than the range of possibletangential and angular velocities of the object derived from a singlescan image depicting the object.

13.8 Future State Boundary After Second Scan Cycle

The autonomous vehicle can then: implement methods and techniquesdescribed above to calculate a future state boundary of the object basedon these possible relative or absolute velocities of the object andpredefined motion limit assumptions; and selectively modify itstrajectory accordingly, as described above.

For example, after calculating the critical time in Block S112, theautonomous vehicle can integrate the second motion of the object at thesecond time—moving at up to the maximum angular velocity andaccelerating up to the maximum linear velocity according to the maximumlinear acceleration prescribed by the predefined motion limitassumptions—from the second location of the object over the stoppingduration to calculate a second ground area accessible to the object fromthe second time to the critical time; and store this second ground areaas a second future state boundary—for the object at the second time—thatis (significantly) smaller in size (e.g., area in a horizontal planeapproximately parallel to a road surface) than the first future stateboundary of the object.

In particular, because the autonomous vehicle compresses a wide range ofpossible tangential and angular velocity combinations of theobject—bounded only by predefined motion limit assumptions—representedby the first function into one or a small range of possible tangentialand angular velocity combinations of the object at the intersection ofthe first function and the second function, the autonomous vehicle canalso calculate a smaller future state boundary of the object from thefirst scan cycle to the second scan cycle and thus predict a largeraccess zone in which the autonomous vehicle may operate up to thecritical time without sacrificing an ability to reach a full stop priorto collision with other objects nearby.

13.9 Object Motion Handling

Then, as described above, the autonomous vehicle can elect a secondnavigational action to avoid entry into the second future state boundaryprior to the critical time in Block S140.

For example, the autonomous vehicle can implement methods and techniquesdescribed above to: calculate an access zone, around the autonomousvehicle, excluding the first future state boundary of the object inBlock S144; and then execute a first navigational action to navigatetoward the access zone (e.g., to change the trajectory of the autonomousvehicle) in response to a location of the autonomous vehicle at thesecond time falling within a threshold distance (e.g., two meters; adistance traversed in 500 milliseconds at the current speed of theautonomous vehicle) of a perimeter of the current future state boundaryof the object. Additionally or alternatively, the autonomous vehicle canautomatically execute a braking action to slow the autonomous vehicle inresponse to the location of the autonomous vehicle at the second timefalling within the threshold of the perimeter of the current futurestate boundary of the object. Conversely, the autonomous vehicle canmaintain its current trajectory (e.g., velocity; speed and steeringangle) or otherwise mute the object from path planning considerationduring the second scan cycle if the current location of the autonomousvehicle falls outside of the second future state boundary of the object.

13.10 Subsequent Scan Cycles

The autonomous vehicle can then repeat the foregoing methods andtechniques to: calculate a third function F₂ based on the average radialvelocity V_(rad,2), the slope S₂, and the radius R₂ of a group ofpoints—associated with the same object—tracked in a third scan imageoutput by the sensor at a third time T₂; calculate a third line L₂ basedon function F₂; and then calculate the intersection of first line L₀(with error bars based on a time offset from T₀ to T₂), second line L₁(with error bars based on a time offset from T₁ to T₂), and third lineL₂, which represents possible V_(tan,2) and ω₂ values of the object atT₂.

Alternatively, during this third scan cycle, the autonomous vehicle can:discard line L₀; and calculate an intersection of second line L₁ (witherror bars based on the time offset from T₁ to T₂) and third line L₂,which represents possible V_(tan,2) and ω₂ values of the object at T₂.

As described above, the autonomous vehicle can then: calculate a rangeof possible V_(tan,2) and ω₂ values of the object at T₂ based on thismulti-way intersection (e.g., two-way, three-way, etc. intersection);calculate possible relative or absolute velocities of the object at T₂;update future state boundary of the object accordingly; and selectivelymodify its trajectory accordingly, as described above.

13.11 Point Grouping & Ungrouping by Object

As described above, the autonomous vehicle can group points in a scanimage by proximity—such as including similar range, azimuthal, elevationvalues—and similar radial velocities. For each group of points detectedin a first scan image, the autonomous vehicle can calculate a functionthat represents the linear and angular motions of the object representedby the group of points. The autonomous vehicle can then: repeat thisprocess for a subsequent scan image; implement object trackingtechniques to link groups of points in the first scan image with groupsof points in the second scan image; and refine motion predictions foreach object based on intersections of pairs of first and secondfunctions for these groups of points derived from the first and secondscan images.

The autonomous vehicle can also cluster two objects thus detected in thesecond scan image into one “composite object” (or “rigid body”) if theirderived motions are congruent (e.g., if their radial, tangential, andangular velocities are very similar or identical), such as if theirmotions fall within a predefined velocity discrimination threshold. Theautonomous vehicle can then calculate one future state boundary for thiscomposite object and selectively navigate relative to this compositeobject accordingly. Therefore, the autonomous vehicle can interpret andhandle multiple groups of points within congruent motions as a singularobject, thereby reducing the number of discrete objects that theautonomous vehicle is tracking and thus reducing computational load atthe autonomous vehicle during operation.

Similarly, the autonomous vehicle can: interpret separation of a firstgroup of points—predicted to represent one object at a first time—in afirst scan image into second and third groups of points—predicted torepresent two different objects at a second time—in a second scan image;generate unique functions for the second and third objects; and estimatemotions of the second and third objects based on functions derived overthe first and second scan cycles.

In one example implementation, the autonomous vehicle implements methodsand techniques described above to identify a first group of points in afirst scan image captured at a first time and to derive a first functionrepresenting motion of an object during a first scan cycle. During asecond scan cycle, the autonomous vehicle can: access a second scanimage containing data captured by the sensor at a second time succeedingthe first time; identify a second group of points in the second scanimage representing the object in the field; identify a third group ofpoints in the second scan image representing a second object in thefield, the second object separating from the object from the first timeto the second time; calculate a second correlation between second radialvelocities and second azimuthal positions of points in the second groupof points; calculate a third correlation between third radial velocitiesand third azimuthal positions of points in the third group of points;based on the second correlation; calculate a second function thatrelates possible tangential velocities of the object and possibleangular velocities of the object at the second time; and, based on thethird correlation, calculate a third function that relates possibletangential velocities of the second object and possible angularvelocities of the second object at the second time. Accordingly, theautonomous vehicle can estimate a second tangential velocity of theobject and a second angular velocity of the object—relative to theautonomous vehicle—at the second time based on an intersection of thefirst function and the second function, as described above. However, theautonomous vehicle can also: estimate a third tangential velocity of thesecond object and a third angular velocity of the second object—relativeto the autonomous vehicle—at the second time based on an intersection ofthe first function representing motion of the object at the first timeand the third function representing motion of the second object at thesecond time.

For example, the autonomous vehicle can implement the foregoingprocesses to: detect two groups of points representing two carstraveling in the same direction and speed in two lanes adjacent theautonomous vehicle at a first time; characterize motion of theseobjects; and to track and respond to these two objects as one compositegroup that reflects congruent motion of the objects at the first time.The autonomous vehicle can then: detect the two objects moving relativeto one another, such as if one of these vehicles brakes and slowsrelative to the other, at a second time; separate the composite objectinto two objects; and then track and respond to these two objects—whichnow exhibit different motions in excess of the velocity discriminationthreshold—independently.

13.12 Concurrent Data from Multiple Sensors

In one variation, the autonomous vehicle includes multiple offsetsensors that output concurrent point clouds—representing surfaces in thefield around the autonomous vehicle at different perspectives—during ascan cycle. In this variation, the autonomous vehicle can execute theforegoing methods and techniques to: calculate a pair of functions andlines for cospatial groups of objects representing a singular object inconcurrent point clouds output by these sensors during one scan cycle;calculate the intersection of these lines; and estimate the tangentialand angular velocities of the object based on this intersection.

For example, the autonomous vehicle can: identify a first group ofpoints—representing a discrete object—in a first point cloud output by afirst sensor on the autonomous vehicle at a first time T₀; calculate anaverage of the radial velocities of points in this first group; storethis average as a first radial velocity V_(rad,1,0) of the object at thefirst time; calculate a first function F_(1,0) based on the radialvelocity V_(rad,1,0), a slope S_(1,0), and a radius R_(1,0) of thisfirst group of points at the first time; and calculate a first lineL_(1,0) based on function F_(1,0). The autonomous vehicle can similarly:identify a second group of points—representing this same object—in asecond point cloud output by a second sensor on the autonomous vehicleat the first time T₀; calculate an average of the radial velocities ofpoints in this second group; store this average as a second radialvelocity V_(rad,2,0) of the object at the first time; calculate a secondfunction F_(2,0) based on the radial velocity V_(rad,2,0), a slopeS_(2,0), and a radius R_(2,0) of this second group of points at thefirst time; and calculate a second line L_(2,0) based on functionF_(2,0).

The autonomous vehicle can then calculate the intersection of first lineL_(1,0) and second line L_(2,0), which represents the actual (or a closeapproximation of) V_(tan,0) and ω₀ of the object at time T₀. Thus, theautonomous vehicle can solve all three unknown motion characteristics ofthe object—including V_(tan,0), ω₀, and V_(rad,0)—at T₀ based on dataoutput by these two sensors during a single scan cycle.

Then, given V_(rad,0), V_(tan,0), and ω₀ represented at the intersectionof line L_(1,0) and L_(2,0), the autonomous vehicle can calculate thetotal velocity V_(tot,rel,0) of the object relative to the autonomousvehicle at T₀. Additionally or alternatively, the autonomous vehicle canmerge its absolute velocity at T₀ with V_(rad,0), V_(tan,0), and ω₀ ofthe object to calculate the total absolute velocity V_(tot,abs,0) of theobject at T₀.

The autonomous vehicle can then: implement methods and techniquesdescribed above to calculate a future state boundary of the object basedon these possible relative or absolute velocities of the object andmaximum object acceleration assumptions; and selectively modify itstrajectory accordingly, as described above.

Furthermore, the autonomous vehicle can: detect an object depicted intwo concurrent scan images captured by two sensors on the autonomousvehicle during a first scan cycle; derive first function and the secondfunction describing motion of this object from both scan images; andfuse these first function and the second function into one motionestimate of the object during this first scan cycle. Concurrently, theautonomous vehicle can: detect a second object depicted in only a firstthese two scan images (e.g., due to obscuration from the field of viewof one of these sensors; or due to different fields of view of the twosensors); and derive a third function describing motion of this secondobject from the first scan image during the first scan cycle. Then,during a next scan cycle, the autonomous vehicle can: detect the secondobject depicted in only a third scan image; derive a fourth functiondescribing motion of this second object from the third scan image; andfuse these third and fourth functions into one motion estimate of thesecond object during the second scan cycle, as described above.

Therefore, autonomous vehicle can implement the foregoing Blocks of themethod S100 to characterize motions of a constellation of objects basedon both concurrently scan images captured during a singular scan cycleand sequences of scan images captured over multiple scan cycles.

14. 6DOF

One variation of the method S100 shown in FIGS. 3A, 3B, and 3C includes:calculating a first best-fit plane through first radial velocities,first azimuthal positions, and first elevation positions of points in afirst group of points representing an object in a first scan imagecaptured at a first time; calculating a second best-fit plane throughsecond radial velocities, second azimuthal positions, and secondelevation positions of points in a second group of points representingthe object in a second scan image captured at a second time; andcalculating a third best-fit plane through third radial velocities,third azimuthal positions, and third elevation positions of points in athird group of points representing the object in a third scan imagecaptured at a third time.

In particular, the first best-fit plane represents a relationshipbetween a first tangential velocity (e.g., a composite tangentialvelocity of tangential azimuthal and tangential elevation velocities) ofthe object, a first yaw velocity of the object, and a first pitchvelocity of the object at the first time. Accordingly, the autonomousvehicle can generate a first function—based on the first best-fitplane—that represents a first relationship (e.g., a correlation) betweenpossible tangential azimuthal velocities and yaw velocities and a secondrelationship between possible tangential elevation velocities and pitchvelocities at the first time.

Similarly, the second best-fit plane represents a relationship between asecond tangential velocity of the object, a second yaw velocity of theobject, and a second pitch velocity of the object at the second time.Accordingly, the autonomous vehicle can generate a second function—basedon the second best-fit plane—that represents a first relationship (e.g.,a correlation) between possible tangential azimuthal velocities and yawvelocities and a second relationship between possible tangentialelevation velocities and pitch velocities at the second time.

Furthermore, the third best-fit plane represents a relationship betweena third tangential velocity of the object, a third yaw velocity of theobject, and a third pitch velocity of the object at the first time.Accordingly, the autonomous vehicle can generate a third function—basedon the third best-fit plane—that represents a first relationship betweenpossible tangential azimuthal velocities and yaw velocities and a thirdrelationship between possible tangential elevation velocities and pitchvelocities at the third time.

In this variation, the method S100 further includes calculating a thirdtangential velocity (or individual tangential azimuthal and tangentialelevation velocities) of the object, a third yaw velocity of the object,and a third pitch velocity of the object at the third time based on anintersection of the first function, the second function, and the thirdfunction in Block S124.

14.1 3DOF v. 6DOF

Generally, the method S100 described above can be executed by theautonomous vehicle to characterize motion of an object in three degreesof freedom (or “3DOF”). However, in this variation, the autonomousvehicle can implement similar methods and techniques to characterizemotion of an object in six degrees of freedom (or “6DOF”).

In particular, when characterizing motion of an object in three degreesof freedom as described above, the autonomous vehicle can interpret:linear motion of the object in the radial and tangential directionswithin a horizontal plane; and rotational motion about a yaw axis normalto this horizontal plane only. Conversely, when characterizing motion ofan object in six degrees of freedom as described above, the autonomousvehicle can interpret: linear motion of the object in the radialdirection, in a tangential azimuthal direction (e.g., parallel to a scandirection of a sensor), and tangential elevation direction (e.g.,orthogonal to the radial and tangential azimuthal directions); androtational motion about a pitch axis along the tangential azimuthaldirection and about a yaw axis along the tangential elevation direction.

Furthermore, rotation of the object about a ray extending from thesensor to the object (i.e., “roll” motion) may not be observable by thesensor within a single scan image. However, if the roll motion of objectof the object is not coaxial with this ray, radial velocities stored inpoints in consecutive scan images captured by the sensor (or concurrentscan images captured by two offset sensors) may contain informationrelated to the roll velocity of the object, and the autonomous vehiclecan therefore fuse groups of points representing the image in multiplescan images to further disambiguate the roll velocity of the objectrelative to the autonomous vehicle.

Furthermore, many (e.g., most) ground-based moving objects—such asbodies of road vehicles and pedestrians—may exhibit minimal or no pitchvelocities and no tangential elevation velocities (e.g., may not bemoving in any direction other than over a horizontal road surface).Accordingly, the tangential elevation and pitch velocities of the objectmay be (or may approach) null. Thus, a best-fit plane through a group ofpoints in a three-dimensional space collapses to a best-fit line in atwo-dimensional space, and derivation of motion of such objects in sixdegrees of freedom according to this variation of the method S100collapses to derivation of motion of the object in three degrees offreedom as described above.

However, some objects on and near road surfaces may exhibit non-zerotangential elevation and pitch velocities relative to the autonomousvehicle, such as wheels, concrete mixers, and street sweepers.Similarly, vehicles moving along inclines may exhibit non-zerotangential elevation and pitch velocities relative to the autonomousvehicle. The tangential elevation and pitch velocities of such an objectis contained in radial velocity data of points that represent thisobject in a scan image but is indeterminate from radial velocity datacontained in a single scan image. Therefore, the autonomous vehicle canfuse relationships between tangential azimuthal, tangential elevation,yaw, and pitch velocities of an object derived from multiple scan imagesdepicting the object from different perspectives (i.e., as theautonomous vehicle and the object move relative to one another) tocalculate a particular or narrow range of possible tangential azimuthal,tangential elevation, yaw, and pitch velocities of the object.

14.2 Example

For example, the autonomous vehicle can: implement methods andtechniques described above to isolate a group of points in a first scanimage that represent an object; and project these points into athree-dimensional space (i.e., a radial velocity, azimuth, and elevationspace) based on speed (i.e., radial velocity) range, azimuthal, andelevation values contained in these points. The autonomous vehicle canthen: calculate a first radial velocity of the object—relative to theautonomous vehicle—at the first time based on a first measure of centraltendency (e.g., a mean) of first radial velocities of points in thefirst group of points; calculate a first position of the object—relativeto the autonomous vehicle—at the first time based on a first measure ofcentral tendency (e.g., a mean) of first azimuthal and elevationpositions points in the first group of points; and calculate a firstradial vector from the first position of the object back to theautonomous vehicle.

Furthermore, the autonomous vehicle can: calculate a first linearazimuthal trend line through first radial velocities versus firstazimuthal positions of points in the first group of points; andcalculate a first correlation based on a first slope of the first linearazimuthal trend line, which represents a relationship between a firsttangential azimuthal velocity of the object and a first yaw velocity ofthe object at the first time. In particular, the first slope canrepresent a first difference between: the tangential velocity of theobject in a first tangential direction (e.g., the tangential azimuthaldirection); and the projection of the cross product—between the radialvector of the object and the yaw velocity (e.g., the pitch velocity) ofthe object—onto the first tangential direction.

The autonomous vehicle can similarly calculate a first linear elevationtrend line through first radial velocities versus first elevationpositions of points in the first group of points; calculate a secondcorrelation based on a second slope of the second linear trend line,which represents a relationship between a first tangential elevationvelocity of the object and a first pitch velocity of the object at thefirst time. In particular, the second slope can represent a seconddifference between: the tangential velocity of the object in a secondtangential direction (e.g., the tangential elevation direction); and theprojection of the cross product—between the radial vector of the objectand the yaw velocity of the object—onto the first tangential direction

The first linear azimuthal and elevation trend lines can thereforerepresent a first best-fit plane for points in the first group plottedin the three-dimensional radial velocity, azimuth, and elevation space,as shown in FIG. 3A.

The autonomous vehicle can then calculate a first function that relatespossible tangential azimuthal, tangential elevation, yaw, and pitchvelocities of the object at the first time based on the first slope, thesecond slope, and the first radial vector representing the relativeposition of the object at the first time. More specifically, this firstfunction can relate possible tangential azimuthal velocities of theobject to possible yaw velocities of the object and relate possibletangential elevation velocities of the object to possible pitchvelocities of the object at the first time.

Alternatively, the autonomous vehicle can: calculate the first best-fitplane for points in the first group directly rather than calculate thefirst linear azimuthal and elevation trend lines independently; and/orderive the first function based on tangential velocities in any otherdirection. For example, the autonomous vehicle can execute the processshown in FIG. 7 to derive a function related observations of the object(i.e., azimuthal, elevation, and range positions and radial velocitiesof points representing the object) and the motion state of the object insix degrees of freedom.

The autonomous vehicle can then repeat this process for subsequent scanimages to generate a sequence of functions that represent possiblecombinations of tangential and angular motions of the object, as shownin FIG. 3A. The autonomous vehicle can then calculate an intersection ofthree functions—derived from three consecutive scan images—in asix-degree of freedom state space to calculate a particular or narrowrange of possible radial, tangential azimuthal, tangential elevation,yaw, pitch, and roll velocities of the object.

Accordingly, the autonomous vehicle can fuse these tangential azimuthal,tangential elevation, yaw, and pitch velocities of the object with aradial velocity of the object derived from the current scan image tocalculate the total velocity of the object in all six degrees of freedomrelative to the autonomous vehicle, as shown in FIG. 3C.

14.3 Best-fit Error

In this variation, the autonomous vehicle can implement methods andtechniques similar to those described above to calculate a width (or“thickness”) of a best-fit plane. For example, the autonomous vehiclecan calculate an error for each best-fit plane for a scan imageproportional to the square root of the sum of the squares of minimumdistances (in three dimensions) from each point in the group to thebest-fit plane. The autonomous vehicle can then calculate a thickness ofthis plane based on this error or otherwise represent this error in thecorresponding function calculated for this object. This function cantherefore represent a three-dimensional ellipsoid containing possiblecombinations of the tangential, yaw, and pitch velocities of the objectduring the scan cycle.

In this example, the autonomous vehicle can then calculate anintersection of three consecutive (thickened) functions to calculate anarrow range of possible radial, tangential azimuthal, tangentialelevation, yaw, pitch, and roll velocities of the object at the currenttime. The autonomous vehicle can then implement methods and techniquesdescribed above to: calculate and selectively react to a future stateboundary of the object based on its motion in six degrees offreedom—including: this narrow range of possible tangential azimuthal,tangential elevation, yaw, pitch, and roll velocities; the measuredradial velocity of the object.

14.4 Accumulated Error

Additionally or alternatively, after calculating first, second, andthird functions over three consecutive scan cycles, the autonomousvehicle can: calculate a first set of possible tangential azimuthal,tangential elevation, yaw, pitch, and roll velocities of the objectrepresented at an intersection of the first function and the secondfunction; calculate worst-case motion of the object that is congruentwith these possible tangential azimuthal, tangential elevation, yaw,pitch, and roll velocities and the set of predefined motion limitassumptions; integrate this worst-case motion of the object over a timefrom the first scan cycle to the third scan cycle; and store this valueas a thickness of the first best-fit plane and thus an error representedby the first function. The first function can therefore represent athree-dimensional ellipsoid containing possible combinations of thetangential, yaw, and pitch velocities of the object during the firstscan cycle.

Similarly, the autonomous vehicle can: calculate a second set ofpossible tangential azimuthal, tangential elevation, yaw, and pitchvelocities of the object represented by the second function; calculateworst-case motion of the object that is congruent with these possibletangential azimuthal, tangential elevation, yaw, and pitch velocitiesand the set predefined motion limit assumptions; integrate thisworst-case motion of the object over a time from the second scan cycleto the third scan cycle; and store this value as a thickness of thesecond best-fit plane and thus an error represented by the secondfunction. The second function can therefore represent athree-dimensional ellipsoid containing possible combinations of thetangential, yaw, and pitch velocities of the object during the secondscan cycle.

In this example, the autonomous vehicle can then calculate anintersection of the (thickness, greatest-error) first function, the(thickened) second function, and the third function to calculate anarrow range of possible tangential azimuthal, tangential elevation,yaw, pitch, and roll velocities of the object at the third time, asshown in FIG. 3C. The autonomous vehicle can then implement methods andtechniques described above to: calculate and selectively react to afuture state boundary of the object based on its motion in six degreesof freedom—including: this narrow range of possible tangentialazimuthal, tangential elevation, yaw,pitch, and roll velocities; themeasured radial velocity of the object.

14.5 Multiple Sensors

As described above, in the variation of the autonomous vehicle thatincludes multiple offset sensors that output concurrent scan image, theautonomous vehicle can execute the foregoing methods and techniques to:calculate multiple functions representing motion of an object in sixdegrees of freedom from multiple concurrent scan images depicting thisobject; and then derive the motion of the object in six degrees offreedom based on the intersection of these functions.

For example, the autonomous vehicle can generate and fuse threefunctions for one object depicted in three concurrent scan imagescaptured by three sensors on the autonomous vehicle. In another example,the autonomous vehicle can generate and fuse two consecutive pairs oftwo functions for one object depicted in two pairs of scan imagescaptured by each of two sensors on the autonomous vehicle over twoconsecutive scan cycles.

Therefore, the autonomous vehicle can implement the foregoing Blocks ofthe method S100 to characterize motions of a constellation of objectsbased on both concurrently scan images captured during a singular scancycle and sequences of scan images captured over multiple scan cycles.

14.6 Multiple Objects

Furthermore, the autonomous vehicle can execute multiple instances ofthis variation of the method concurrently to derive motion of multipleobjects in six degrees of freedom from multiple concurrent orconsecutive scan images captured by the autonomous vehicle.

14.7 Objects Segmentation

In one example of this variation, the autonomous vehicle captures a scanimage depicting a side of a road vehicle (e.g., a passenger vehicle, atruck). The autonomous vehicle implements methods and techniquesdescribed above to group points depicting this road vehicle in the scanimage based on proximity. However, if the road vehicle is moving (i.e.,if its wheel speed is non-zero), the body of the road vehicle mayexhibit minimal or null tangential elevation and pitch velocitiesrelative to the autonomous vehicle, but wheels of the road vehicle mayexhibit non-zero tangential elevation and pitch velocities. Therefore,radial velocities described by a first subset of points—in thisgroup—that correspond to the body of the road vehicle may be incongruentwith radial velocities described by a second subset of points—in thisgroup—that correspond to a wheel of the road vehicle.

Therefore, in one implementation, the autonomous vehicle can distinguishand separate the first and second subgroups of points based ondifferences in radial velocity trends across with the group of points,as shown in FIG. 3B. For example, the autonomous vehicle can: implementmethods and techniques described above to calculate an initial best-fitplane through radial velocities, azimuthal positions, and elevationpositions represented by the group of points; and characterize errorbetween (e.g., distances from) the initial best-fit plane and points inthe group. If this error is high (e.g., exceeds a predefined threshold),the autonomous vehicle can: detect a first cluster of points in thegroup characterized by greatest error (e.g., greatest distances from thebest-fit plane); segregate the group of points into a first subgroupcontaining the first cluster of points and a second subgroup containingthe remaining points; calculate a first best-fit plane through radialvelocities, azimuthal positions, and elevation positions represented bythe first subgroup of points; characterize a first error between thefirst best-fit plane and points in the first subgroup; similarlycalculate a second best-fit plane through radial velocities, azimuthalpositions, and elevation positions represented by the second subgroup ofpoints; and characterize a second error between the second best-fitplane and points in the second subgroup. The autonomous vehicle canrepeat this process to iteratively refine the first and second subgroupsuntil the error between each subgroup of points and its correspondingbest-fit plane is less than a maximum error (e.g., less than thepredefined threshold).

In this implementation, the autonomous vehicle can also segment theinitial group of points into a maximum number of subgroups, such as amaximum of four subgroups that may collectively represent: a body andtwo wheels of a passenger vehicle; two wheels and front and rear bodysections of an articulated bus; two wheels, a body, and a sweeperelement of a street sweeper; or two wheels, a body, and a concrete mixerelement of a cement truck. Additionally or alternatively, the autonomousvehicle can segment the initial group of points into subgroups, eachwith at least a predefined minimum quantity of points (e.g., 100points).

More generally, differences in tangential elevation and pitch velocitiesof different elements of one road vehicle relative to the autonomousvehicle—which are represented in radial velocities of points in theinitial group—will produce error between these points and a best-fitplane for the entire group because this best-fit plane describescongruent motion of all of these elements of the road vehicle in sixdegree of freedom. Therefore, the autonomous vehicle can execute theforegoing process: to detect and isolate subgroups of points thatrepresent disparate elements on one road vehicle that exhibit differentmotions relative to the autonomous vehicle; and to calculate sets offunctions (e.g., best-fit planes) that relate tangential azimuthal,tangential elevation, yaw, and pitch velocities of these disparateelements of the road vehicle at the time of the scan cycle.

The autonomous vehicle can then repeat this process for multiple scanimages—such as a set of concurrent images captured by multiple sensorsor consecutive scan images captured by one sensor—to: isolate subgroupsof points representing disparate elements on the road vehicle; deriveadditional sets of functions that relate tangential azimuthal,tangential elevation, yaw, and pitch velocities of these elements of theroad vehicle; and then derive motion of each element of the road vehiclein six degrees of freedom relative to the autonomous vehicle based onthe intersection of three sets of functions for each element of the roadvehicle, as described above. The autonomous vehicle can also calculatethe total absolute motion of each element of the road vehicle based onthese relative motions and the concurrent motion of the autonomousvehicle, as described above.

14.8 Linking Objects

Furthermore, once the autonomous vehicle thus derives relative orabsolute motions of multiple elements of a road vehicle in six degreesof freedom, the autonomous vehicle can implement methods and techniquessimilar to those described above to regroup these disparate elementsinto one composite object (e.g., one “rigid body”) if their linearmotions are congruent, such as if their absolute or relative totallinear velocities fall within the predefined velocity discriminationthreshold described above.

For example, the autonomous vehicle can estimate a first linear motionof a first object and a first angular motion of the firstobject—relative to the autonomous vehicle—at a current time in BlockS126 based on an intersection of a set of (e.g., three) functionsderived from three subgroups of points representing the first objectdepicted in three consecutive scan images captured by the sensor.Concurrently, the autonomous vehicle can estimate a second linear motionof a second object and a second angular motion of the secondobject—relative to the autonomous vehicle—at the current time in BlockS126 based on an intersection of a set of (e.g., three) functionsderived from three subgroups of points representing the second objectdepicted in these three consecutive scan images. The autonomous vehiclecan then identify the first object and the second object ascorresponding to a common rigid body in response to alignment betweenthe first linear motion of the first object and the second linear motionof the second object in Block S160, such as if the difference betweenthe first and second linear motions falls within the predefined velocitydiscrimination threshold described above, as shown in FIG. 3B.

More specifically, two objects—detected and tracked across multiple scancycles by the autonomous vehicle—that correspond to different elementsof the same road vehicle may exhibit dissimilar pitch and yaw velocitiesrelative to the autonomous vehicle but will move together along the samepath and will therefore exhibit the same (or very similar) linearvelocities. Therefore, the autonomous vehicle groups objects in closeproximity and exhibiting the same (or very similar) linearvelocities—and possibly different yaw and pitch velocities—to form onecomposite object (or one “rigid body”) that represents a complete roadvehicle.

14.9 Object Classification

Furthermore, the autonomous vehicle can classify a type of an individualobject based on its motion characteristics.

In one example shown in FIG. 3B, the autonomous vehicle can identify anobject as a wheel by: projecting points in the (sub)group that representthis object into a three-dimensional space based on the azimuthalposition, elevation position, and range values contained in thesepoints; calculating a direction of the absolute linear velocity of theobject; calculating a vertical plane through the group of points andparallel to (i.e., containing) the direction of motion of the object;and calculating linear velocity components of radial velocities ofpoints in the group within the vertical plane. The autonomous vehiclecan then identify the object as a wheel in Block S162: if the maximumlinear velocity—within the vertical plane—of these points (i.e., of apoint representing a current top of the wheel or tire) is approximatelytwice the absolute linear velocity of the object (and parallel to and/orin the same orientation as the direction of the absolute linear velocityof the object); and/or if the minimum linear velocity—within thevertical plane—of these points (i.e., of a point representing a currentbottom of the wheel or tire) is approximately null.

In a similar example, the autonomous vehicle can identify an object as awheel by: calculating a direction of the absolute linear velocity of theobject; and calculating linear velocity components of radial velocitiesof points in the group parallel to the absolute direction of motion ofthe object. The autonomous vehicle can then identify the object as awheel in Block S162: if the maximum linear velocity—parallel to theabsolute direction of motion of the object—of these points (i.e., of apoint representing a current top of the wheel or tire) is approximatelytwice the absolute linear velocity of the object (and parallel to and/orin the same orientation as the direction of the absolute linear velocityof the object); if the minimum linear velocity—parallel to the absolutedirection of motion of the object—of these points (i.e., of a pointrepresenting a current bottom of the wheel or tire) is approximatelynull; and/or if a gradient of linear velocities of points in the groupparallel to the absolute direction of motion of the object increasesfrom approximately null proximal a ground plane to approximately twicethe absolute linear velocity of the object at the top of the object(e.g., at a point on the object twice the height above the ground planeof the vertical center of the group of points).

Then, in response to identifying an object—within a composite object—asa wheel, the autonomous vehicle can classify this composite object as awheeled vehicle, as shown in FIG. 3B. More specifically, the autonomousvehicle can classify a composite object as a wheeled vehicle based onmotion characteristics and/or relative positions of objects contained inthe composite object—such as rather than or in addition to implementingartificial intelligence and computer vision techniques to classify thecomposite object based on visual characteristics of the composite objectdetected in a color image or geometry characteristics of the objectderived from a depth image of the composite object. Therefore, byclassifying a composite object as a wheeled vehicle based on motion ofthe objects contained therein based on simple, predefined, prescriptiverules rather than complex artificial intelligence and computer visiontechniques, the autonomous vehicle can accurately classify the compositeobject in less time and/or with less computational load.

Furthermore, after classifying the composite object as a wheeledvehicle, the autonomous vehicle can retrieve predefined motion limitassumptions for wheeled vehicles—rather than for a generic object (i.e.,for all possible object types)—and assign or label these refinedpredefined motion limit assumptions to the composite object, as shown inFIG. 3B. For example, the autonomous vehicle can retrieve predefinedmotion limit assumptions for wheeled vehicles that specify: maximumangular velocities that are less than maximum angular velocities formotorcycles and pedestrians and that vary as a function of anddecreasing proportional to the ground speed of a vehicle; and maximumlinear accelerations that are less than for motorcycles.

Furthermore, in this variation, the autonomous vehicle can detecthostile motion of the composite object if an object—within thiscomposite object—identified as a wheel exhibits a maximum linearvelocity in parallel to the direction of linear motion of the objectthat is (significantly) more than twice the total absolute linearvelocity of the object, as such characteristics may indicate that thewheeled vehicle is “peeling out,” “burning out,” or has otherwise losttraction. Accordingly, the autonomous vehicle can retrieve predefinedmotion limit assumptions for wheeled vehicles exhibiting loss oftraction and assign or label these refined predefined motion limitassumptions to the composite object. For example, the autonomous vehiclecan retrieve predefined motion limit assumptions for wheeled vehiclesexhibiting loss of traction that specify lower maximum linear velocitiesand greater maximum angular velocities than for wheeled vehicles withtraction.

15. Direction of Uncertainty of Object Motion

One variation of the method S100 shown in FIG. 4 includes, for a firstscan cycle: accessing a first scan image containing data captured by asensor on the autonomous vehicle at a first time in Block S104;identifying a first group of points in the first scan image representingan object in a field proximal the autonomous vehicle in Block S120, eachpoint in the first group of points including a first position of asurface on the object relative to the autonomous vehicle and a firstradial velocity of the surface of the object relative to the sensor;calculating a first radial velocity of the object, relative to theautonomous vehicle, at the first time based on a first measure ofcentral tendency of first radial velocities of points in the first groupof points in Block S122; and characterizing a first direction ofuncertainty of motion of the object at the first time along a firsttangential direction perpendicular to the first radial velocity of theobject in Block S170. This variation of the method S100 also includes:calculating a predicted second direction of uncertainty of motion of theobject at a second time succeeding the first time based on motion of theautonomous vehicle at the first time in Block S172; and, in response tothe second direction of uncertainty differing from the first directionof uncertainty, muting the object from braking consideration for objectavoidance by the autonomous vehicle at the second time in Block S142.

15.1 Delaying Collision Avoidance Actions Based on Future Data Quality

Generally, in the foregoing variations, the autonomous vehicle mayrequire multiple scan cycles to derive a particular absolute or relativetotal motion of an object, such as two scan cycles to derive the totalmotion of the object in three degrees of freedom or three scan cycles toderive the total motion of the object in six degrees of freedom.Furthermore, the range of possible absolute or relative motions of theobject over these scan cycles calculated by the autonomous vehicle maybe high—thereby yielding less certainty of the true motion of theobject—if the radial position of the object relative to the autonomousvehicle remains relatively consistent over these scan cycles; and viceversa.

Therefore, in this variation, the autonomous vehicle can: characterize acurrent direction of uncertainty of motion of an object (e.g., in thetangential azimuthal and/or tangential elevation directions) during acurrent scan cycle; predict a future direction of uncertainty of motionof the object (e.g., based on the relative motions of the autonomousvehicle and the object and predefined motion limit assumptions ofgeneric objects) during a future (e.g., a next) scan cycle; and comparethe current and predicted future directions of uncertainty of motion ofthe object to predict whether the autonomous vehicle will improve itscertainty of the motion of the object in the future—such as if thecurrent and future directions of uncertainty of motion of the object arenot parallel—which may inform a more accurate response (e.g., braking,steering, or no action) to avoid collision with the object in thefuture. Accordingly, if the autonomous vehicle verifies that it iscurrently located outside of the future state boundary of the object asdescribed above, the autonomous vehicle can elect to delay a response tothe object during the current scan cycle because the autonomous vehiclepredicts greater certainty of the motion of the object in the future.

More specifically, though the autonomous vehicle may have incompletemotion information of an object when the object first comes into theview of a sensor on the autonomous vehicle, the autonomous vehicle canelect to delay an action to avoid collision with the object (e.g.,braking, change of direction) because the autonomous vehicle predictsaccess to more or better information in the future that will reduceuncertainty of the motion of the object. Thus, the autonomous vehiclecan execute this variation of the method S100 to improve ride qualityand avoid unnecessary braking and steering actions that may otherwise:yield physical and emotional discomfort for riders; and increaseuncertainty of actions by the autonomous vehicle for human drivers andpedestrians nearby.

15.2 Uncertainty of Object Motion

Generally, an object first detected by the object during a current scancycle may be moving at any combination of tangential and angularvelocities that satisfies a function calculated by the autonomousvehicle during the current scan cycle and that falls within maximumtangential and angular velocity assumptions prescribed by the predefinedmotion limit assumptions. For example, the object may be moving veryrapidly into the path of the autonomous vehicle or may be braking toavoid the autonomous vehicle, such as while the autonomous vehicle andthe object both approach an intersection. The radial velocitiescontained in points representing this object in the current scan imageapproximate a singular measurement direction (e.g., due to the smallangle approximately) and therefore may contain insufficient informationto resolve the specific tangential and angular velocities of the object.

However, during the next scan cycle, the autonomous vehicle may accessmore data representing motion of the object, which the autonomousvehicle can then fuse with the motion description of the object duringthe preceding scan cycle (e.g., a first radial velocity and a firstfunction that relates the tangential and angular velocities of theobject) to calculate a narrow(er) range of possible tangential andangular velocity combinations for the object.

Such refinement of motion of the object with data captured during a nextscan cycle may be proportional to the orthogonality of the functionsrelating the tangential and angular velocities of the object during thecurrent scan cycle. In particular, if these two functions exhibit loworthogonality (i.e., high parallelism), the intersection of these twofunctions may be a relatively large area and may thereby inform a widerange of possible tangential and angular velocities of the object; andvice versa. More specifically, if these two functions exhibit loworthogonality, the intersection of the first function and the secondfunction divided by the union of the first function and the secondfunction may be relatively large, which may correspond to low certainlyof the motion of the object.

15.3 Uncertainty Direction Derivation

In one implementation, the autonomous vehicle implements methods andtechniques described above to: access a first scan image; detect anobject—for the first time—in the first scan image; calculate a firstradial velocity and a first function that relates tangential and angularvelocities of the object during the first scan cycle; and calculate afirst future state boundary of the object.

Then, if the autonomous vehicle is very far from the future stateboundary, the autonomous vehicle can mute the object from path planningconsideration. For example, the autonomous vehicle can mute the objectfrom braking consideration for object avoidance from the current timeuntil at least a next scan cycle if a location of the autonomous vehicleat the current time falls outside of the first future state boundary ofthe object by greater than a threshold distance, such as a thresholddistance of 50 meters or a distance traversed within a threshold time offive seconds by the autonomous vehicle given its current speed.

Conversely, if the autonomous vehicle is inside of this future stateboundary, the autonomous vehicle can automatically execute a brakingaction, thereby slowing the autonomous vehicle in order to move thelocation of the autonomous vehicle outside of the future state boundaryduring a future (e.g., a next) scan cycle.

However, if the autonomous vehicle is near (e.g., outside of but withinthe threshold distance of) the future state boundary of the object, theautonomous vehicle can execute Blocks of this variation of the methodS100 to characterize the direction of uncertainty of motion of theobject. If an angle between the direction of uncertainty of motion ofthe object and the trajectory of the autonomous vehicle is more than athreshold angle (e.g., if the object is traversing a cross-street andapproaching the same intersection as the autonomous vehicle), theautonomous vehicle may currently have access to insufficient informationto discern whether the object is moving very quickly toward theautonomous vehicle or on course to collide with the autonomous vehicle.However, because the current location of autonomous vehicle fallsoutside of the future state boundary of the autonomous vehicle, theautonomous vehicle can confirm that the object will not collide with theautonomous vehicle before the autonomous vehicle can brake to a fullstop even if the autonomous vehicle delays action for at least one morescan cycle and even if the object is moving with worst-case tangentialand angular velocities within the predefined motion limit assumptions.Therefore, the autonomous vehicle can withhold executing an action toavoid the object until (at least) the next scan cycle when additionalmotion data for the object becomes available to the autonomous vehicle.

Furthermore, if the autonomous vehicle is very close to (e.g., withintwo meters or 200 milliseconds of) the object and/or very close to(e.g., within ten meters or one second of) the future state boundary ofthe object, the autonomous vehicle can execute this variation of themethod S100 to predict the next direction of uncertainty of the object.For example, the autonomous vehicle can: elect a nominal angularvelocity assumption (e.g., 0 radians per second) for the object at thecurrent time; and calculate a first tangential velocity of the objectbased on the first function and the nominal angular velocity.Alternatively, the autonomous vehicle can: calculate a maximumtangential velocity of the object toward the autonomous vehicle that iscongruent with the set of predefined motion limit assumptions and thefirst function (and therefore based on radial velocities of pointsrepresenting the object in the current scan image and the radial lengthof the object); store this maximum tangential velocity as a predictedfirst tangential velocity of the object; and calculate a correspondingpredicted first angular velocity of the object based on the firstfunction and the predicted first tangential velocity of the object. Theautonomous vehicle can then predict the total relative motion of theobject based on the first radial velocity, this predicted firsttangential velocity, and predicted nominal angular velocity; calculate anext relative position of the object relative to the autonomous vehicleduring a next scan cycle by integrating the total relative motion of theobject over the time from the current scan cycle to the next scan cycle(e.g., the sampling interval of the sensor); and then calculate apredicted second direction of uncertainty of motion of the object—duringthe next scan cycle—that is perpendicular to the radial position of theobject relative to the autonomous vehicle during the next scan cycle andfalls within the horizontal plane. (More specifically, the autonomousvehicle can calculate the predicted second direction of uncertainty ofmotion of the object that falls along a predicted tangential azimuthaldirection for the next scan cycle.)

Therefore, the autonomous vehicle can calculate a predicted seconddirection of uncertainty of motion of the object during the next scancycle based on motion of the autonomous vehicle at the current time andthe first radial, and predicted first tangential, and predicted firstangular velocities of the object at the current time.

15.4 Certainty Improvement Prediction

Then, if the predicted second direction of uncertainty differs from thefirst direction of uncertainty for the current scan cycle, theautonomous vehicle can predict a decrease in uncertainty of motion ofthe object during the next scan cycle and confirm no change in motion ofthe autonomous vehicle. The autonomous vehicle can also characterize amagnitude of predicted improvement in certainty of motion of the objectupon the next scan cycle based on (or proportional to) an angle betweenthe first and predicted second directions of uncertainty of motion ofthe object.

However, if the predicted second direction of uncertainty is parallel ornearly parallel to (e.g., within 5° of) the first direction ofuncertainty for the current scan cycle, the autonomous vehicle canrepeat the foregoing process to recalculate the predicted seconddirection of uncertainty for the object given a change in motion of theautonomous vehicle between the current and next scan cycles, such as asteering angle change, a braking input, or an acceleration input (whileremaining in the access zone calculated for many or all objects in thefield and fulfilling predefined smooth autonomous navigationrequirements). For example, the autonomous vehicle can modelnavigational actions by the autonomous vehicle that may produce changesin the direction of uncertainty for the object—and therefore improvecertainty of the motion of the object—at the next scan cycle.

Then, if one of these navigational actions yields a predicted change inthe direction of uncertainty (i.e., that increase an angle between thepredicted second direction of uncertainty and the first direction ofuncertainty), the autonomous vehicle can execute this navigationalaction to modify motion of the autonomous vehicle, relative to theobject during the next scan cycle. In particular, the autonomous vehiclecan execute this navigational action specifically to improve opportunityto acquire information that may better inform the true motion of theobject rather than necessarily to avoid collision with the objectbecause the autonomous vehicle has already confirmed that the autonomousvehicle has time to come to a full stop before collision with objecteven given worst-case motion of the object.

15.5 Flanking Object

The autonomous vehicle can additionally or alternatively execute thisprocess to calculate a predicted second direction of uncertainty ofmotion of the object during the next scan cycle if the first directionof uncertainty intersects a current trajectory of the autonomousvehicle, such as within a threshold distance (e.g., 30 meters, threeseconds, or the stopping duration of the autonomous vehicle) ahead ofthe current location of the autonomous vehicle.

However, if the predicted second direction of uncertainty of motion ofthe object during the next scan cycle intersects the current trajectoryof the autonomous vehicle beyond this threshold distance or if thepredicted second direction of uncertainty of motion of the object duringthe next scan cycle is approximately parallel to (e.g., with 20° of) thecurrent trajectory of the autonomous vehicle, the autonomous vehicle mayhave high certainty in the motion of the object toward the autonomousvehicle.

For example, if the object and the autonomous vehicle flanking eachother in two immediately-adjacent and parallel lanes, the first radialvelocity of the object derived from a first scan image by autonomousvehicle may indicate motion of the object toward autonomous vehicle(i.e., a highest-risk direction) with very high certainty even thoughthe true tangential velocity of object is unknown from this first scanimage. In this example, the direction of uncertainty of motion of theobject (e.g., in the direction of the tangential velocity of the object)is approximately parallel to the direction of motion of the autonomousvehicle and the object and therefore does not inform motion of theobject toward the autonomous vehicle. Furthermore, the angle between thetrajectory of the autonomous vehicle and the direction of uncertainty ofmotion of the object is approximately 0°. Accordingly, the autonomousvehicle can elect a navigational action to avoid collision with theobject: based on the future state boundary of the object; and not basedon the uncertainty of motion of the object because the component ofmotion that (predominantly) effects risk of collision with the object isknown.

15.6 Future Scan Cycles

The autonomous vehicle can also execute the foregoing process to predictdirections of uncertainty of motion of the object—and thereforeimprovement in the certainty of motion of the object—over multiplefuture scan cycles, such as over the subsequent ten scan cycles or overthe subsequent two seconds of operation of the autonomous vehicle.Accordingly, the autonomous vehicle can elect to mute an object fromobject avoidance considerations over multiple subsequent scan cyclesbecause the autonomous vehicle predicts changes in directions ofuncertainty of motion of the object—and therefore improvement in thecertainty of motion of the object—over these multiple subsequent scancycles. Additionally or alternatively, the autonomous vehicle can:predict (or “model”) navigational actions by the autonomous vehicle thatwill produce changes in directions of uncertainty of motion of theobject—and therefore improvement in the certainty of motion of theobject—over multiple subsequent scan cycles; and then execute suchnavigational actions over these scan cycles in order to improve itscertainty of motion of the object.

16. Uncertainty of Object Motion

A similar variation of the method S100 shown in FIG. 5 includes, for afirst scan cycle at the autonomous vehicle: accessing a first scan imagecontaining data captured by a sensor on the autonomous vehicle at afirst time in Block S104; identifying a first group of points in thefirst scan image representing an object in a field proximal theautonomous vehicle in Block S120; and characterizing a first motion ofthe object at the first time based on the first group of points in BlockS126. This variation of the method S100 also includes, for a second scancycle at the autonomous vehicle: accessing a second scan imagecontaining data captured by the sensor at a second time succeeding thefirst time in Block S104; identifying a second group of points in thesecond scan image representing the object in Block S120; andcharacterizing a second motion of the object at the second time based onthe second group of points and the first motion in Block S126. Thisvariation of the method S100 further includes: characterizing a seconduncertainty of the second motion of the object at the second time inBlock S180; calculating a predicted third uncertainty of a third motionof the object at a third time succeeding the second time based on thesecond motion of the object at the second time and motion of theautonomous vehicle at the second time in Block S182; and, in response tothe predicted third uncertainty falling below the second uncertainty,muting the object from braking consideration for object avoidance by theautonomous vehicle at the second time in Block S142.

Similarly, this variation of the method S100 can include, for a firstscan cycle at the autonomous vehicle: accessing a first scan imagecontaining data captured by a sensor on the autonomous vehicle at afirst time in Block S104; identifying a first group of points in thefirst scan image representing an object in a field proximal theautonomous vehicle in Block S120; and characterizing a first motion ofthe object at the first time based on the first group of points in BlockS126. This variation of the method S100 can also include: characterizinga first uncertainty of the first motion of the object at the second timein Block S180; calculating a predicted second uncertainty of a secondmotion of the object at a second time succeeding the first time based onthe first motion of the object at the first time and motion of theautonomous vehicle at the first time in Block S182; and, in response tothe predicted second uncertainty falling below the first uncertainty,muting the object from braking consideration for object avoidance by theautonomous vehicle at the second time in Block S142.

16.1 Uncertainty of Object Motion

Generally, in this variation, the autonomous vehicle can implementmethods and techniques similar to those described above to: calculate apredicted next direction of uncertainty of motion of an object during anext scan cycle; compare the current and predicted next directions ofuncertainty of motion of the object to predict a magnitude ofimprovement in certainty of the motion of the object in the future(e.g., proportional to orthogonality of the current and predicted nextdirections of uncertainty of motion of the object); and then selectivelydelay navigational actions to avoid the object at the current timeresponsive to low certainty of motion of the object if the autonomousvehicle predicts a (meaningful, significant) improvement in certainty ofthe motion of the object in the future, thereby reducing motion changesof the autonomous vehicle and improving ride quality for a passenger, asdescribed above.

16.2 Uncertainty Characterization: 3DOF

More specifically, in the variation described above in which theautonomous vehicle characterizes motion of objects in three degrees offreedom, the autonomous vehicle can implement methods and techniquesdescribed above to: calculate a first function representing motion ofthe object based on radial velocities of points representing this objectin a first scan image; calculate a first future state boundary of anobject upon first detecting the object in a first scan image capturedduring a first scan cycle; and verify that the autonomous vehicle iscurrently located outside of the first future state boundary of theobject. The autonomous vehicle can then implement methods and techniquesdescribed above to predict a second function representing the motion ofthe object during a next scan cycle. For example, the autonomous vehiclecan predict an (absolute or relative) motion of the object during thesecond scan cycle based on: the first radial velocity and the firstfunction describing motion of the object during the first scan cycle;predefined motion limit assumptions of generic objects; and integratedover a time difference from the first scan cycle to the next scan cycle.The autonomous vehicle can then: predict a gradient of radial velocitiesand azimuthal position of points representing the object in a next scanimage; calculate a predicted second function representing possibletangential and angular velocities of the object during the next scancycle based on this gradient of radial velocities across these azimuthalpositions; and calculate the intersection divided by the union of thefirst function and the predicted second function. The autonomous vehiclecan then predict information gain—and therefore improvement in certaintyof motion of the object—inversely proportional to this intersectiondivided by the union of the first function and the predicted secondfunction.

Therefore, in the variation described above in which the autonomousvehicle characterizes motion of objects in three degrees of freedom, theautonomous vehicle can characterize the second uncertainty of the motionof the object at the second time proportional to a ratio of anintersection of the first function and the second function to a union ofthe first function and the second function in Block S180.

16.2 Uncertainty Characterization: 6DOF

In the variation described above in which the autonomous vehiclecharacterizes motion of objects in six degrees of freedom, theautonomous vehicle can implement similar methods and techniques tocharacterize uncertainty of the motion of the object during a next scancycle.

For example, the autonomous vehicle can: calculate a first functionrepresenting possible tangential, angular, and pitch motions of theobject during the current (i.e., first) scan cycle; implement methodsand techniques described above to predict (absolute or relative) motionof the object in six degrees of freedom during the second scan cycle;predict a first gradient of radial velocities, azimuthal positions, andelevation positions of points representing the object in a next (i.e.,second) scan image; and calculate a predicted second functionrepresenting possible tangential, angular, and pitch velocities of theobject during the second scan cycle based on this first gradient ofradial velocities across these azimuthal and elevation positions. Theautonomous vehicle can then calculate the intersection divided by theunion of the first function (e.g., a three-dimensional ellipsoid) andthe predicted second function (e.g., a three-dimensional ellipsoid).

The autonomous vehicle can then predict information gain—and thereforeimprovement in certainty of motion of the object during the second scancycle—inversely proportional to this intersection divided by the unionof the first function and the predicted second function.

Then, during the second scan cycle, the autonomous vehicle can:calculate a second function representing possible tangential, angular,and pitch motions of the object during the second scan cycle; andcharacterize a difference between the second function and the predictedsecond function. The autonomous vehicle can then: implement methods andtechniques described above to predict (absolute or relative) motion ofthe object in six degrees of freedom during a third scan cycle based on:motions represented at the intersection of the first and secondfunctions integrated over a time difference from the second scan cycleto the next (i.e., third) scan cycle and corrected (or “adjusted”)according to the difference between the second function and thepredicted second function. The autonomous vehicle can then: predict asecond gradient of radial velocities, azimuthal positions, and elevationpositions of points representing the object in a third scan image; andcalculate a predicted third function representing possible tangential,angular, and pitch velocities of the object during the next (i.e.,third) scan cycle based on this second gradient of radial velocitiesacross these azimuthal and elevation positions. The autonomous vehiclecan then calculate the intersection divided by the union of the firstfunction, the second function, and the predicted third function.

The autonomous vehicle can thus predict information gain—and thereforeimprovement in certainty of motion of the object during the third scancycle—inversely proportional to this intersection divided by the unionof the first function, the second function, and the predicted thirdfunction.

16.3 Object Muting

Then, as described above, the autonomous vehicle can mute the objectfrom braking consideration for object avoidance (or from reactivenavigational actions more generally) by the autonomous vehicle at leastuntil the next scan cycle if: the current location of the autonomousvehicle falls outside of the current future state boundary calculatedfor the object by greater than a threshold distance; and if theautonomous vehicle predicts improvement in uncertainty of motion of theobject, such as specifically in the direction of the autonomousvehicle's current trajectory.

16.4 Action to Reduce Uncertainty

Alternatively, in this variation, the autonomous vehicle can elect anavigational action to alter its trajectory in order to capture motiondata for the object that may improve (i.e., reduce) the uncertainty ofmotion of the object during a future scan cycle, as described above.

16.5 Future Scan Cycles

The autonomous vehicle can also execute the foregoing process to predictuncertainty of motion of the object over multiple future scan cycles,such as over the subsequent ten scan cycles or over the subsequent twoseconds of operation of the autonomous vehicle. Accordingly, theautonomous vehicle can elect to mute an object from object avoidanceconsiderations over multiple subsequent scan cycles because theautonomous vehicle predicts insufficient improvement in uncertainty ofmotion of the object over these multiple subsequent scan cycles.Additionally or alternatively, the autonomous vehicle can: predict (or“model”) navigational actions by the autonomous vehicle that willproduce improvements in uncertainty of motion of the object overmultiple subsequent scan cycles; and then execute such navigationalactions over these scan cycles in order to improve its certainty ofmotion of the object.

17. Uncertainty Boundary

In a similar variation shown in FIG. 6 , the autonomous vehicle executesBlocks of the method S100: to detect an object in a scan image (e.g., a3D speed-annotated point cloud) of the field around the autonomousvehicle; to extract low-uncertainty motion data (e.g., a radial speedrelative to the autonomous vehicle) for this object from this scanimage; to identify critical motion data of the object that is currentlyunavailable to the autonomous vehicle but may enable the autonomousvehicle to verify worst-case object motion that may produce a futurecollision between the autonomous vehicle and the object; and to predictwhen the autonomous vehicle will access these critical motion data giventhe autonomous vehicle's current velocity and such worst-case motion ofthe object. The autonomous vehicle can then selectively delay executingcollision avoidance actions (e.g., slowing, stopping) for this objectresponsive to predicting that the autonomous vehicle will access thesecritical motion data of the object at a future time that still enablesthe autonomous vehicle to brake to a full stop prior to colliding withthis object (e.g., such that any such collision may be fully theresponsibility of the object and not the responsibility of theautonomous vehicle).

For example, when the autonomous vehicle detects an object in itsvicinity, the autonomous vehicle can execute Blocks of the method S100to estimate a critical future time at which the position of the objectrelative to the autonomous vehicle will change sufficiently to enablethe autonomous vehicle to capture additional object motion data thatreduces the uncertainty of the object's motion and thus enables theautonomous vehicle to verify possibility of collision with the object.The autonomous vehicle can then confirm that, even given worst-casemotion of the object (such as bounded by predefined assumptions formaximum speed of a generic object), the autonomous vehicle can stillbrake to a full stop prior to collision with the object if theautonomous vehicle delays an emergency stop until after this criticalfuture time; if so, then the autonomous vehicle can delay executing apreemptive collision avoidance action for the object, which may improvepredictability of the autonomous vehicle's motion for other vehicles,drivers, and pedestrians nearby and smoothing motion of the autonomousvehicle during operation. Therefore, the autonomous vehicle can delayexecuting a preemptive collision avoidance action for the object, whichmay improve predictability of the autonomous vehicle's motion for othervehicles, drivers, and pedestrians nearby and smoothing motion of theautonomous vehicle during operation.

Similarly, given worst-case motion of the object, the autonomous vehiclecan calculate a maximum critical speed of the autonomous vehicle at thecritical future time that enables the autonomous vehicle to brake to afull stop prior to collision with the object if the autonomous vehicledelays an emergency stop until after this critical future time. Theautonomous vehicle can then: bound its maximum speed to this maximumcritical speed up to the critical future if the autonomous vehicle'scurrent speed is less than this maximum critical speed; or automaticallycoast or brake in order to reduce its speed to this maximum criticalspeed by the critical future time if the autonomous vehicle's currentspeed is greater than this maximum critical speed.

For example, the autonomous vehicle can: store worst-case speeds andaccelerations of high-performance passenger vehicles or high-performancemotorcycles (e.g., a maximum speed of 50 meters per second, a maximumacceleration of 9 meters per second per second); bound possible motionof an object in a direction not measurable by the autonomous vehiclebased on these worst-case speeds and accelerations; and verify whetherthe object may reach and collide with the autonomous vehicle given aspeed within this bound; and then execute subsequent Blocks of themethod S100 to selectively delay avoidance of this object in order tocollect additional motion data and to further verify motion of theobject. The autonomous vehicle can therefore reduce or eliminatereliance on object identification and other machine learning techniques:to identify types of objects; to distinguish immutable objects (e.g.,road signs, telephone poles) from mutable objects (e.g., pedestrian,vehicles) in the field around the autonomous vehicle; and to selectdynamics models or predict future motion of objects based on theirtypes. More specifically, rather than predict a future motion of anobject based on a dynamics model selected according to a predicted typeof the object, the autonomous vehicle can instead: predict and boundcurrent and future motion of the object based on limited motion datacollected during a current scan cycle, the current position of theobject relative to the autonomous vehicle, and maximum speed andacceleration assumptions for a generic object (e.g., a generichigh-performance passenger vehicle); and verify whether motion of thisobject within the bound enables the object to collide with theautonomous vehicle.

Therefore, by executing Blocks of the method S100 to inform pathplanning decisions, the autonomous vehicle can: reduce or eliminate aneed to accurately identify types or classes of objects in itsenvironment; reduce or eliminate this possible source of error inautonomous operation of the autonomous vehicle; and increase robustnessof autonomous operation of the autonomous vehicle, such as againstadversarial computer vision attacks, adversarial neural network attacks,or in circumstances with limited or no prior training data.

Furthermore, the autonomous vehicle can implement identical detection,tracking, and motion planning decision pathways for both mutable andimmutable objects, thereby reducing or eliminating a need to identifyclasses of objects (or classifying objects as mutable or immutable) inthe autonomous vehicle's environment and reducing a quantity of uniquecomputer vision, machine learning, and path planning pipelines executingon the autonomous vehicle. For example, the autonomous vehicle canexecute identical detection, tracking, and motion planning decisionpathways to predict and handle: possible undetectable objects in theautonomous vehicle's environment but obscured by other detected objects(e.g., a pedestrian standing behind a telephone pole; a passengervehicle occupying a lane obstructed in the autonomous vehicle's field ofview by a tractor trailer); objects first entering the autonomousvehicle's field of view; and objects extant in the autonomous vehicle'sfield of view.

17.1 Object Motion Measurement Limitations and Uncertainty

Generally, the autonomous vehicle can characterize motion of anobject—detected in its field—in three degrees of freedom, such as:translation in an radial direction extending from the autonomous vehicleto the object; translation in a horizontal tangential directionperpendicular to the radial direction; and rotation about a yaw axis ofthe object. However, points in a scan image described above may contain1D motion observations (i.e., range rates along the radial axis) ofobjects in the field. As described above, the autonomous vehicle can:isolate a cluster of points represented at similar distances from theautonomous vehicle in the scan image; interpolate 2D motion (e.g., aradial speed relative to the autonomous vehicle and a yaw rate about theobject) that is consistent with 1D motion observations across points inthis scan image; and thus associate this cluster of points with oneobject in the field. Therefore, the autonomous vehicle can derive theradial speed of the object (i.e., the speed of the object along a rayextending from the autonomous vehicle through the object) and a yaw rateof the object from the scan image.

However, the scan image may contain no information related to thetangential velocity of the object (i.e., motion perpendicular to the rayextending from the autonomous vehicle to the object). Therefore, theuncertainty of the tangential velocity of the object during the currentscan cycle may be relatively high in comparison to the uncertainty ofthe radial speed of the object directly measured by a sensor in theautonomous vehicle and stored in the current scan image.

However, if the autonomous vehicle is moving relative to the object, theautonomous vehicle's perspective of the object may change from thecurrent scan cycle to a later scan cycle such that the object falls at adifferent azimuthal position in the field of view of the autonomousvehicle during this later scan cycle. The radial speed of the objectthus derived from a later scan image captured by the autonomous vehicleduring this later scan cycle may therefore correspond to a speed of theobject in a direction—in the absolute reference system—that differs fromthe radial direction of the object represented in the scan imagecaptured during the current scan cycle.

Therefore, as the autonomous vehicle and the object continue to moverelative to one another over subsequent scan cycles, the autonomousvehicle can anticipate access to a set of radial speeds of the objectover a range of tangential directions, can selectively elect to delay acollision avoidance action in order to access radial speeds of theobject in these tangential directions and reduce uncertainty of theobject's motion, and can base future path planning decisions onhigher-certainty knowledge of the object's motion, thereby increasingefficiency of the autonomous vehicle and smoothing motion of theautonomous vehicle.

17.2 Velocity Uncertainty Boundary

Generally, the autonomous vehicle can implement methods and techniquesdescribed above to fuse a measured radial speed of the object and themaximum speed of a generic object—prescribed by predefined motion limitassumptions—into a velocity uncertainty boundary that represents a setof many (or all) possible velocities of the object at the current time.

For example, the autonomous vehicle can: initialize a set of vectors ina (polar) coordinate system with origin centered on the autonomousvehicle, wherein each vector represents a possible velocity of theobject relative to the autonomous vehicle in the coordinate systemduring the current scan cycle; set a component length of each vector inthe radial direction equal to the current measured radial speed of theobject; assign a range of total lengths spanning a negative maximumspeed of a generic object to a positive maximum speed of a genericobject to the set of vectors; locate the set of vectors extending from acenter of the object in the coordinate system; and calculate an ellipseor ellipsoid containing these vectors to define the velocity uncertaintyboundary for the object during the current scan cycle.

In this example, the autonomous vehicle can similarly calculate a rangeof vectors with component lengths in the radial direction that span arange of radial speeds of points associated with the object in thecurrent scan image and/or that span an error range radial speedmeasurements of the sensor that generated the scan image. The autonomousvehicle can then calculate an ellipse or ellipsoid through these vectorsto define the velocity uncertainty boundary for the object during thecurrent scan cycle.

However, the autonomous vehicle can calculate a velocity uncertaintyboundary for the object in any other way.

17.3 Collision Velocity, Collision Duration, And Critical Time

Generally, the autonomous vehicle can predict a future time at which aparticular velocity of the object—contained in the velocity uncertaintyboundary of the object—will lead to collision with the autonomousvehicle if the autonomous vehicle continues along its currenttrajectory.

More specifically, the autonomous vehicle can: predict the upcoming pathof the autonomous vehicle based on the autonomous vehicle's currentvelocity, its planned route, and/or a known lane network around theautonomous vehicle; scan the velocity uncertainty boundary of the objectfor a particular velocity that may enable the object to reach aparticular location along the autonomous vehicle's upcoming path atapproximately the same time as the autonomous vehicle, such as in lightof or in spite of the known lane network; to estimate a collision timethat the object moving at this particular velocity and the autonomousvehicle moving along this path will reach this particular location; andto calculate a critical time preceding the collision time by the currentstopping duration of the autonomous vehicle.

17.4 Object Motion Uncertainty Prediction at Critical Time

Generally, the autonomous vehicle can: predict object motion dataaccessible to the autonomous vehicle between the current time and thecritical time; and predict how these additional object motion data mayreduce uncertainty of the object's motion.

17.4.1 Second Radial Direction at Critical Time

In one implementation, the autonomous vehicle: estimates the location ofthe autonomous vehicle at the critical time based on the current pathand velocity of the autonomous vehicle; estimates the location of theobject at the critical time based on the current location of the objectand the worst-case velocity of the autonomous vehicle thus calculatedduring the current scan cycle; and calculates a second radial direction(or azimuth angle) from the autonomous vehicle to the object at thecritical time based on these estimated locations of the autonomousvehicle and the object at the critical time. The autonomous vehicle canimplement similar methods and techniques to estimate a range of radialdirections from the autonomous vehicle to the object from the currenttime to the critical time based on the current path and velocity of theautonomous vehicle, based on the current location of the object, andassuming the worst-case velocity of the object over this period of time.

17.4.2 Future Velocity Uncertainty Boundary at Critical Time

The autonomous vehicle then: implements methods and techniques describedabove to calculate a future velocity uncertainty boundary of the objectbased on object motion data that the autonomous vehicle may collect bythe critical time assuming that the autonomous vehicle and the objectreach these estimated locations at the critical time.

17.4.3 Uncertainty at Critical Time

The autonomous vehicle can then characterize the uncertainty of theobject's motion at the critical time, such as proportional to a range ofpossible speeds of the object in the tangential direction (i.e.,perpendicular the radial direction) relative to the autonomous vehicleat the critical time. Then, if this predicted uncertainty of the speedof the object at the critical time falls below a threshold uncertainty(e.g., if the range of possible tangential velocities of the object isless than four meters per second), the autonomous vehicle can mute theobject from a path planning decision during the current scan cycle orotherwise elect to delay any collision avoidance action responsive tothe object to a future time in Block S142.

Conversely, if the predicted uncertainty of the speed of the object atthe critical time exceeds this threshold uncertainty (e.g., if the rangeof possible tangential velocities of the object is more than four metersper second), the autonomous vehicle can reduce its speed, such asproportional to this uncertainty in order to extend the critical timefurther into the future, thereby enabling the autonomous vehicle tocapture additional motion data for the object prior to a possiblecollision with the object and thus reduce the motion uncertainty of theobject before this delayed critical time.

17.5 Changing Object and Points

Furthermore, because the autonomous vehicle may not rely on objectclassification or identification to predict a type of an object and topredict motion of the object accordingly, the autonomous vehicle maydefine a group of points that spans multiple real objects in the field,such as if these objects are moving along similar trajectories and atsimilar velocities. However, the autonomous vehicle can implement theforegoing methods and techniques to calculate, refine, and avoid afuture state boundary for this “grouped object” until a time that thesereal objects are no longer moving along similar trajectories and/or atsimilar velocities, at which time the autonomous vehicle can:distinguish these objects in a current scan cycle; transfer motioncharacteristics from the preceding grouped objects onto each of thesedistinct objects; and then calculate a future state boundary for each ofthese objects, as described above.

Similarly, the autonomous vehicle may distinguish two clusters of pointsthat represent a single real object and implement methods and techniquesdescribed above to calculate, refine, and avoid future state boundariesfor both of these clusters, such as up until a time that the autonomousvehicle determines that proximity and self-consistency of radial speeds(or range rates) of points in these two clusters indicate a singularobject.

Additionally or alternatively, the autonomous vehicle can implement theforegoing methods and techniques to calculate, refine, and avoid futurestate boundaries for individual points and smaller clusters of pointsthat represent subregions of objects in the field around the autonomousvehicle.

The systems and methods described herein can be embodied and/orimplemented at least in part as a machine configured to receive acomputer-readable medium storing computer-readable instructions. Theinstructions can be executed by computer-executable componentsintegrated with the application, applet, host, server, network, website,communication service, communication interface,hardware/firmware/software elements of a user computer or mobile device,wristband, smartphone, or any suitable combination thereof. Othersystems and methods of the embodiment can be embodied and/or implementedat least in part as a machine configured to receive a computer-readablemedium storing computer-readable instructions. The instructions can beexecuted by computer-executable components integrated bycomputer-executable components integrated with apparatuses and networksof the type described above. The computer-readable medium can be storedon any suitable computer readable media such as RAMs, ROMs, flashmemory, EEPROMs, optical devices (CD or DVD), hard drives, floppydrives, or any suitable device. The computer-executable component can bea processor but any suitable dedicated hardware device can(alternatively or additionally) execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the embodiments of the invention without departing fromthe scope of this invention as defined in the following claims.

I claim:
 1. A method for autonomous navigation of an autonomous vehiclecomprising: accessing a set of predefined motion limit assumptions forgeneric objects proximal public roads; for a first scan cycle: accessinga first scan image containing data captured by a sensor on theautonomous vehicle at a first time; identifying a first group of pointsin the first scan image representing a first object in a field proximalthe autonomous vehicle, each point in the first group of pointscomprising: a first range value from the sensor to a surface on thefirst object; a first azimuthal position of the surface on the firstobject relative to the sensor; and a first radial velocity of thesurface of the first object relative to the sensor; calculating a firstcorrelation between first radial velocities and first azimuthalpositions of points in the first group of points; based on the firstcorrelation, calculating a first function that relates possibletangential velocities of the first object and possible angularvelocities of the first object at the first time; and calculating afirst radial velocity of the first object at the first time based onfirst radial velocities of points in the first group of points;estimating a first stopping duration, for the autonomous vehicle toreach a full stop, based on a first speed of the autonomous vehicle atthe first time; calculating a first critical time offset from the firsttime by the stopping duration; calculating a first future state boundarythat represents a first ground area accessible to the first object atthe first critical time based on: possible tangential velocities of thefirst object and possible angular velocities of the first object, at thefirst time, defined by the first function; the first radial velocity;and the set of predefined motion limit assumptions; and electing a firstnavigational action to avoid entry into the first future state boundaryprior to the first critical time.
 2. The method of claim 1: furthercomprising calculating an access zone, around the autonomous vehicle,excluding the first future state boundary of the first object; andwherein electing the first navigational action comprises, in response toa first location of the autonomous vehicle at the first time fallingwithin a threshold distance of a perimeter of the first future stateboundary, executing the first navigational action to navigate toward theaccess zone.
 3. The method of claim 1, wherein electing the firstnavigational action comprises, in response to a first location of theautonomous vehicle at the first time falling within the first futurestate boundary, executing a braking action to slow the autonomousvehicle.
 4. The method of claim 1, wherein electing the firstnavigational action comprises, in response to a first location of theautonomous vehicle at the first time falling outside of the first futurestate boundary, maintaining a velocity of the autonomous vehicle.
 5. Themethod of claim 1, further comprising: for a second scan cyclesucceeding the first scan cycle: accessing a second scan imagecontaining data captured by the sensor at a second time; identifying asecond group of points in the second scan image representing the firstobject in the field; calculating a second correlation between secondradial velocities and second azimuthal positions of points in the secondgroup of points; based on the second correlation, calculating a secondfunction that relates possible tangential velocities of the first objectand possible angular velocities of the first object at the second time;and calculating a second radial velocity of the first object at thesecond time based on second radial velocities of points in the secondgroup of points; estimating a second tangential velocity of the firstobject and a second angular velocity of the first object at the secondtime based on an intersection of the first function and the secondfunction; estimating a second stopping duration, for the autonomousvehicle to reach a full stop, based on a second speed of the autonomousvehicle at the second time; calculating a second critical time offsetfrom the second time by the stopping duration; calculating a secondfuture state boundary that represents a second ground area accessible tothe first object at the second critical time based on: second tangentialvelocity of the first object; the second angular velocity of the firstobject; the first radial velocity; and the set of predefined motionlimit assumptions; and electing a second navigational action to avoidentry into the second future state boundary prior to the first criticaltime.
 6. The method of claim 5: wherein calculating the first futurestate boundary comprises calculating the first future state boundary:within a plane approximately parallel to a road surface; andcharacterized by a first area dimension; and wherein calculating thesecond future state boundary comprises calculating the second futurestate boundary: within the plane; and characterized by a second areadimension less than the first area dimension.
 7. The method of claim 1,wherein calculating the first correlation comprises: calculating a firstlinear trend line through first radial velocities versus first azimuthalpositions of points in the first group of points; and calculating thefirst correlation based on a first slope of the first linear trend line,the slope representing a relationship between a first tangentialvelocity of the first object and a first angular velocity of the firstobject at the first time.
 8. The method of claim 7: further comprisingcharacterizing a first error of the first linear trend line based ondeviation of first radial velocities of points in the first group ofpoints from the first linear trend line; wherein calculating the firstfunction comprises: calculating a first line that relates possibletangential velocities of the first object and possible angularvelocities of the first object at the first time based on the firstcorrelation; and calculating a first width of the first line based onthe first error; and wherein calculating the first future state boundarycomprises calculating the first future state boundary based on possibletangential velocities of the first object and possible angularvelocities of the first object, at the first time, represented by thefirst line of the first width.
 9. The method of claim 1, whereinaccessing the first scan image comprises accessing the first scan imagecontaining data captured by the sensor comprising a four-dimensionallight detection and ranging sensor: mounted on the autonomous vehicle;and configured to generate scan images representing positions and speedsof surfaces within the field relative to the sensor.
 10. A method forautonomous navigation of an autonomous vehicle comprising: at a firsttime at the autonomous vehicle, estimating a stopping duration, for theautonomous vehicle to reach a full stop, based on a speed of theautonomous vehicle at the first time; calculating a critical time offsetfrom the first time by the stopping duration; detecting an object in afirst scan image, of a field proximal the autonomous vehicle, capturedby a sensor on the autonomous vehicle at approximately the first time;based on the first scan image, deriving a first location and a firstmotion of the first object; calculating a first future state boundarythat represents a first ground area accessible to the first object fromthe first time to the first critical time based on: the first locationof the first object at the first time; the first motion of the firstobject; and a set of predefined motion limit assumptions for genericobjects proximal public roads; and electing a first navigational actionto avoid entry into the first future state boundary prior to the firstcritical time.
 11. The method of claim 10: further comprising accessingthe set of predefined motion limit assumptions comprising: a maximumlinear acceleration of the generic ground-based vehicle; a maximumlinear velocity of a generic ground-based vehicle; and a maximum angularvelocity of the generic ground-based vehicle; and wherein calculatingthe first future state boundary comprises: integrating the first motionof the first object, moving at up to the maximum angular velocity andaccelerating up to the maximum linear velocity according to the maximumlinear acceleration, from the first location of the first object overthe stopping duration to calculate the first ground area accessible tothe first object from the first time to the first critical time; andstoring the first ground area as the first future state boundary. 12.The method of claim 11: further comprising: detecting a second object inthe first scan image; based on the first scan image, deriving a secondlocation and a second motion of the second object; integrating thesecond motion of the second object, moving at up to the maximum angularvelocity and accelerating up to the maximum linear velocity according tothe maximum linear acceleration, from the second location of the secondobject over the stopping duration to calculate a second ground areaaccessible to the second object from the first time to the firstcritical time; and storing the second ground area as a second futurestate boundary; and wherein electing the first navigational actioncomprises electing the first navigational action to avoid entry into thefirst future state boundary and the second future state boundary priorto the first critical time.
 13. The method of claim 12: furthercomprising calculating an access zone, around the autonomous vehicle,excluding the first future state boundary of the first object and thesecond future state boundary of the second object; and wherein electingthe first navigational action comprises executing the first navigationalaction to navigate toward the access zone.
 14. The method of claim 10:further comprising calculating an access zone, around the autonomousvehicle, excluding the first future state boundary of the first object;and wherein electing the first navigational action comprises, inresponse to a first location of the autonomous vehicle at the first timefalling within a threshold distance of a perimeter of the first futurestate boundary, executing the first navigational action to navigatetoward the access zone.
 15. The method of claim 10: wherein detectingthe object in the first scan image comprises identifying a first groupof points in the first scan image representing a first object in a fieldproximal the autonomous vehicle, each point in the first group of pointscomprising: a first range value from the sensor to a surface on thefirst object; a first azimuthal position of the surface on the firstobject relative to the autonomous vehicle; and a first radial velocityof the surface of the first object relative to the autonomous vehicle;wherein deriving the first location and the first motion of the firstobject comprises: calculating a first correlation between first radialvelocities and first azimuthal positions of points in the first group ofpoints; based on the first correlation, calculating a first functionthat relates possible tangential velocities of the first object andpossible angular velocities of the first object at the first time;calculating a first radial velocity of the first object at the firsttime based on first radial velocities of points in the first group ofpoints; and deriving the first location of the first object based onfirst range values and first azimuthal positions of points in the firstgroup of points; and wherein calculating the first future state boundarycomprises calculating the first future state boundary based on: possibletangential velocities of the first object and possible angularvelocities of the first object, at the first time, defined by the firstfunction; the first radial velocity; the first location, and the set ofpredefined motion limit assumptions.
 16. The method of claim 15, furthercomprising: for a second scan cycle succeeding the first scan cycle:accessing a second scan image containing data captured by the sensor ata second time; identifying a second group of points in the second scanimage representing the first object in the field; calculating a secondcorrelation between second radial velocities and second azimuthalpositions of points in the second group of points; based on the secondcorrelation, calculating a second function that relates possibletangential velocities of the first object and possible angularvelocities of the first object at the second time; and calculating asecond radial velocity of the first object at the second time based onsecond radial velocities of points in the second group of points;estimating a second tangential velocity of the first object and a secondangular velocity of the first object at the second time based on anintersection of the first function and the second function; estimating asecond stopping duration, for the autonomous vehicle to reach a fullstop, based on a second speed of the autonomous vehicle at the secondtime; calculating a second critical time offset from the second time bythe stopping duration; calculating a second future state boundary thatrepresents a second ground area accessible to the first object at thesecond critical time based on: the second tangential velocity of thefirst object; the second angular velocity of the first object; thesecond radial velocity; and the set of predefined motion limitassumptions; and electing a second navigational action to avoid entryinto the second future state boundary prior to the first critical time.17. The method of claim 16, wherein calculating the second future stateboundary comprises calculating the second future state boundary thatrepresents the second ground area less than the first ground area. 18.The method of claim 10: further comprising: detecting a second object inthe first scan image; based on the first scan image, deriving a secondlocation and a second motion of the second object; calculating a secondfuture state boundary that represents a second ground area accessible tothe second object from the first time to the first critical time basedon: the second location of the second object at the first time; thesecond motion of the second object; and the set of predefined motionlimit assumptions for generic objects proximal public roads; and inresponse to a second distance from the autonomous vehicle to a secondperimeter of the second future state boundary at the first timeexceeding a threshold distance, muting the second object from a nextpath planning consideration at the autonomous vehicle; and whereinelecting the first navigational action comprises, in response to a firstdistance from the autonomous vehicle to a first perimeter of the firstfuture state boundary at the first time falling within the thresholddistance, activating the first object in the next path planningconsideration at the autonomous vehicle.
 19. The method of claim 10,wherein estimating the stopping duration comprises: accessing a secondimage of the field captured by a second sensor, arranged on theautonomous vehicle, at approximately the first time; interpreting a typeof a road surface occupied by the autonomous vehicle at the first timebased on a set of features extracted from the second image; predicting aquality of the road surface based on the set of features; estimating afriction coefficient for tires of the autonomous vehicle acting on theroad surface based on the type of the road surface and the quality ofthe road surface; and estimating the stopping duration based on: avehicle speed of the autonomous vehicle at the first time; the frictioncoefficient; and a braking model for the autonomous vehicle.
 20. Amethod for autonomous navigation of an autonomous vehicle comprising:accessing a set of predefined motion limit assumptions for genericobjects proximal public roads; accessing a scan image containing datacaptured by a sensor on the autonomous vehicle at a first time;identifying a group of points in the scan image representing an objectin a field proximal the autonomous vehicle, each point in the group ofpoints comprising: a position of a surface on the object relative to theautonomous vehicle; a radial velocity of the surface of the objectrelative to the autonomous vehicle; calculating a correlation betweenradial velocities and positions of points in the group of points; basedon the correlation, calculating a function that relates possibletangential velocities of the object and possible angular velocities ofthe object at the first time; calculating a radial velocity of theobject at the first time based on radial velocities of points in thegroup of points; calculating a future state boundary that represents aground area accessible to the object at a future time based on: possibletangential velocities of the object and possible angular velocities ofthe object, at the first time, defined by the function; the radialvelocity of the object; and the set of predefined motion limitassumptions; and electing a navigational action to avoid the futurestate boundary prior to the future critical time.